1

我可以将变量传递给SELECT语句吗?

我不断收到一条错误消息,说我需要声明它。

但是,它被声明了。

SELECT (list of columns)
FROM @database_table
4

3 回答 3

7

您正在寻找使用动态 SQL 来执行这种类型的查询。

动态 SQL 的祸与福

这是一个快速示例

declare @sqlstatement nvarchar(4000)
declare @table sysname
set @table = 'yourTableName'

set @sqlstatement = 'SELECT * FROM ' + QUOTENAME(@table)
exec(@sqlstatement)
于 2012-06-18T17:24:02.807 回答
0

当您使用表变量时,您可以做任何您想做的事情。您必须将变量定义为:

declare @name table (<column list>)

这是声明临时表的替代方法。

除此之外,我完全同意 bluefeet。你应该阅读他发布的链接。

于 2012-06-18T17:26:20.280 回答
0

是的,使用动态 sql 语句来构建您的 select 语句。

-- Procedure input parameters
@TableName varchar(50)

-- Query guts
Declare @sql varchar(2000)
Set @sql = 'Select columnname from ' + @TableName
exec (@sql)
于 2012-06-18T17:55:23.947 回答