我使用Server并具有以下查询:
declare @variable nvarchar(max)
set @variable = 'Fixed_Assets'
declare @sql nvarchar(max)
set @sql = 'Select ' + @variable + ' from table where ' + @variable + '= 1 '
但是,我如何仍然可以使用@variable
作为值而不是列名呢?
我想添加一个列(Name
),然后使用固定资产的常数值
发布于 2022-03-18 14:18:53
不能将变量作为列名直接插入到命令中,但可以将命令创建为nvarchar,将另一个变量连接到其中(在您的例子中是列名),然后使用Exec()
运行它。
DECLARE @variable varchar(10)
SET @variable = 'YourColumn'
DECLARE @sqlCommandText nvarchar(1000);
SET @sqlCommandText = N'select * from table where ' + @variable + ' = ''1'''
Exec (@sqlCommandText)
不要忘记,如果在sql中的字符串中有一个单引号,则需要将它们加倍。
https://stackoverflow.com/questions/71528277
复制相似问题