我尝试在同一个查询中使用多个变量但是我收到了关于列的错误...你有什么想法吗?
Declare @query nvarchar(max)
set @query = 'contact'
Declare @var2 nvarchar(max)
set @var2 = 'value'
declare @strSql nvarchar(2000)
set @strSql = 'UPDATE Inventaire.dbo.test SET Inventaire.dbo.test.' + @query + ' = ' + @Var2 + ' WHERE Inventaire.dbo.test.nDeviceID = 1'
exec sp_executesql @strSql
错误:
Msg 207,Level 16,State 1,Line 1
列名称'value'无效。
答案 0 :(得分:1)
您需要围绕值的单引号('
):
Declare @query nvarchar(max)
set @query = 'contact'
Declare @var2 nvarchar(max)
set @var2 = 'value'
declare @strSql nvarchar(2000)
set @strSql = 'UPDATE Inventaire.dbo.test SET Inventaire.dbo.test.' + @query + ' = ''' + @Var2 + ''' WHERE Inventaire.dbo.test.nDeviceID = 1'
exec sp_executesql @strSql
您需要将它们加倍,以使服务器知道您正在尝试使用文字'
。
使用单引号,您有'value'
。没有它们,您有value
,这意味着您指的是名为value
的列。
答案 1 :(得分:0)
我找到了解酒:'''' + @ Var2 +''' 它是3'
感谢您的帮助:)