我有一个数据库字段名称调用Code,我正在尝试使用如下所示的变量名称来选择它:
Code
Declare @var1 = [Code] (SELECT @var1 FROM [VoucherType] WHERE [DeletedBy] IS NULL AND [AutoID] = 1)
显然,SQL将解释@var1为字符串,而不是数据库的字段,我如何以这种方式@var1将其识别为字段名[Code]而不是字符串,可能没有任何select或if语句。
@var1
[Code]
试试这个:
DECLARE @var1 VARCHAR(20) DECLARE @sql VARCHAR(255) SET @var1 = 'Code' SET @sql = 'select ' + @var1 + ' from [VoucherType] where [DeletedBy] is null and [AutoID] = 1' EXEC sp_executesql @sql
您必须组成一个动态查询,并使用 sp_executesql
sp_executesql
要在事物的“动态”方面添加更多内容,请使用存储过程。请参见此处的示例:
http://www.marten-online.com/database/execute-dynamic-sql-in- mssql.html
那就是…如果您使用的是Microsoft SQL SERVER