我创建了一个Temp表(#TempTable)。我想插入日期,但我得到一个错误。这是一个动态查询。
我试图从另一个表中获取日期并将日期插入临时表
只是为了确保你理解我给出一个例子的问题
DECLARE @OfferEndDateTime datetime
SELECT @OfferEndDateTime = getdate()-1
print @VOfferEndDateTime
DECLARE @SQL VarChar(1000)
SELECT @SQL ='INSERT INTO #TempTable '+
'SELECT D,Points,@OfferEndDateTime '
exec(@sql)
请告诉我出错的地方
答案 0 :(得分:3)
将参数传递给动态sql
时,需要使用sp_executesqlexec sp_executesql @sql, N'@OfferEndDateTime datetime', @OfferEndDateTime=@OfferEndDateTime
答案 1 :(得分:1)
至少有三个问题:
SELECT @SQL ='INSERT INTO #TempTable '+ 'SELECT D,Points,' + @OfferEndDateTime
变量需要是varchar类型或类似的
什么是D,Points
?它们没有在任何地方定义。如果它们是varchar值,则需要引用它们(使用“或”)用于此目的。
如果您需要使用parameter like datetime
,则应使用sp_executesql
。检查HERE以获取相关信息!