Search code examples
sql-servercommon-table-expressioncreate-table

Create table with CTEs in SQL


I have one CTE I am trying to create a table from and not sure what I am doing wrong? I keep getting an error "Incorrect syntax near ';'."

create table ATB AS

;WITH 


rpt_dts as (

select 
        CONVERT(varchar(12),GETDATE() -30, 101) productivity_srt_date 
       ,CONVERT(varchar(12),GETDATE(), 101) productivity_end_date
       ,CONVERT(varchar(12),'1/1/2017', 101) DenialStrt_date  
       ,CONVERT(varchar(12),GETDATE(), 101) ME_end_date   


) select * from rpt_dts

Solution

  • SQL Server does not support CTAs:

    ;WITH rpt_dts as (
      select 
            CONVERT(varchar(12),GETDATE() -30, 101) productivity_srt_date 
           ,CONVERT(varchar(12),GETDATE(), 101) productivity_end_date
           ,CONVERT(varchar(12),'1/1/2017', 101) DenialStrt_date  
           ,CONVERT(varchar(12),GETDATE(), 101) ME_end_date   
    ) 
    select * 
    into ATB        -- into clause is a workaround
    from rpt_dts