Sql server 动态sql语句插入问题
我已经创建了一个临时表。我正在尝试插入要获取的日期,但出现错误。这是一个动态查询 我试图从另一个表中获取日期,并将日期插入临时表 为了确保你理解这个问题,我举了一个例子Sql server 动态sql语句插入问题,sql-server,Sql Server,我已经创建了一个临时表。我正在尝试插入要获取的日期,但出现错误。这是一个动态查询 我试图从另一个表中获取日期,并将日期插入临时表 为了确保你理解这个问题,我举了一个例子 DECLARE @OfferEndDateTime datetime SELECT @OfferEndDateTime = getdate()-1 print @VOfferEndDateTime DECLARE @SQL VarChar(1000) SELECT @SQL ='INSERT INTO #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)
请告诉我哪里出了问题将参数传递给动态sql时,您需要使用sp_executesql
exec sp_executesql @sql, N'@OfferEndDateTime datetime', @OfferEndDateTime=@OfferEndDateTime
向动态sql传递参数时,需要使用sp_executesql
exec sp_executesql @sql, N'@OfferEndDateTime datetime', @OfferEndDateTime=@OfferEndDateTime
你至少有三个问题:
D,点
?它们在任何地方都没有定义。如果它们是varchar值,您需要为此引用它们(使用“或”)如果需要使用datetime等
参数,则应改用sp_executesql
。查看相关信息!您至少有三个问题:
变量需要位于以下外部:
变量必须是varchar类型或类似类型
什么是D,Points
?它们没有在任何地方定义。如果它们是varchar值,您需要为此引用它们(使用“或”)
如果需要使用datetime等参数,则应改用sp_executesql
。检查一些关于它的信息 可能是@OfferEndDateTime应该在单引号之外。表示您必须将其连接到查询字符串可能是@OfferEndDateTime应该在单引号之外。表示您必须将其连接到查询字符串