有没有办法将 CTE 输出插入 SQL 服务器中的 #mytemp
Is there a way to insert CTE output into a #mytemp in SQL server
我很难将我的 CTE 插入#mytemp table
DECLARE @dt1 Datetime='2012-08-01'
DECLARE @dt2 Datetime= (SELECT DATEADD(MM,DATEDIFF(MM, 0, GETDATE()),0))
;WITH ctedaterange
AS (SELECT [rn]=Row_number()
OVER(
ORDER BY (SELECT NULL))
FROM sys.objects a
CROSS JOIN sys.objects b
CROSS JOIN sys.objects c
CROSS JOIN sys.objects d)
SELECT Dateadd(dd, rn, @dt1)
INTO #PROP_TABLE
FROM ctedaterange
WHERE [rn] <= Datediff(dd, @dt1, @dt2)
是的,您没有为您的列设置别名。您需要为列命名,如下所示,否则它将不起作用,因为所有 table 都需要列名
DECLARE @dt1 Datetime='2012-08-01'
DECLARE @dt2 Datetime= (SELECT DATEADD(MM,DATEDIFF(MM, 0, GETDATE()),0))
;WITH ctedaterange
AS (SELECT [rn]=Row_number()
OVER(
ORDER BY (SELECT NULL))
FROM sys.objects a
CROSS JOIN sys.objects b
CROSS JOIN sys.objects c
CROSS JOIN sys.objects d)
SELECT Dateadd(dd, rn, @dt1) AS [Date] --- Insert a column Name here
INTO #PROP_TABLE
FROM ctedaterange
WHERE [rn] <= Datediff(dd, @dt1, @dt2)
SELECT * FROM #PROP_TABLE
DROP TABLE #PROP_TABLE
我很难将我的 CTE 插入#mytemp table
DECLARE @dt1 Datetime='2012-08-01'
DECLARE @dt2 Datetime= (SELECT DATEADD(MM,DATEDIFF(MM, 0, GETDATE()),0))
;WITH ctedaterange
AS (SELECT [rn]=Row_number()
OVER(
ORDER BY (SELECT NULL))
FROM sys.objects a
CROSS JOIN sys.objects b
CROSS JOIN sys.objects c
CROSS JOIN sys.objects d)
SELECT Dateadd(dd, rn, @dt1)
INTO #PROP_TABLE
FROM ctedaterange
WHERE [rn] <= Datediff(dd, @dt1, @dt2)
是的,您没有为您的列设置别名。您需要为列命名,如下所示,否则它将不起作用,因为所有 table 都需要列名
DECLARE @dt1 Datetime='2012-08-01'
DECLARE @dt2 Datetime= (SELECT DATEADD(MM,DATEDIFF(MM, 0, GETDATE()),0))
;WITH ctedaterange
AS (SELECT [rn]=Row_number()
OVER(
ORDER BY (SELECT NULL))
FROM sys.objects a
CROSS JOIN sys.objects b
CROSS JOIN sys.objects c
CROSS JOIN sys.objects d)
SELECT Dateadd(dd, rn, @dt1) AS [Date] --- Insert a column Name here
INTO #PROP_TABLE
FROM ctedaterange
WHERE [rn] <= Datediff(dd, @dt1, @dt2)
SELECT * FROM #PROP_TABLE
DROP TABLE #PROP_TABLE