我有一个数据库字段名称调用Code,我试图使用如下所示的变量名称选择它:
Declare @var1 = [Code]
(SELECT @var1
FROM [VoucherType]
WHERE [DeletedBy] IS NULL
AND [AutoID] = 1)
Run Code Online (Sandbox Code Playgroud)
显然,SQL将解释@var1为字符串而不是我的数据库字段,如何以这种方式@var1将其识别为字段名称[Code]而不是字符串,可能没有任何select或if语句.
Non*_*nym 11
试试这个:
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
Run Code Online (Sandbox Code Playgroud)
您必须编写动态查询,然后执行 sp_executesql
要在事物的"动态"方面添加更多内容,请使用存储过程.请看这里的例子:
http://www.marten-online.com/database/execute-dynamic-sql-in-mssql.html
那就是......如果你使用的是Microsoft SQL SERVER
您需要使用动态 SQL。
declare @ColName varchar(128)
declare @sql varchar(4000)
Set @ColName='Code';
select @sql = 'SELECT '+@ColName+'
FROM [VoucherType]
WHERE [DeletedBy] IS NULL
AND [AutoID] = 1'
exec sp_executesql @sql
go
Run Code Online (Sandbox Code Playgroud)
这篇文章可能会有所帮助
问候
| 归档时间: |
|
| 查看次数: |
29547 次 |
| 最近记录: |