使用多个变量进行更新

时间:2015-05-09 19:13:06

标签: sql-server variables

我尝试在同一个查询中使用多个变量但是我收到了关于列的错误...你有什么想法吗?

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'无效。

2 个答案:

答案 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'

感谢您的帮助:)