我可以将变量传递给SELECT
语句吗?
我不断收到一条错误消息,说我需要声明它。
但是,它被声明了。
SELECT (list of columns)
FROM @database_table
我可以将变量传递给SELECT
语句吗?
我不断收到一条错误消息,说我需要声明它。
但是,它被声明了。
SELECT (list of columns)
FROM @database_table
您正在寻找使用动态 SQL 来执行这种类型的查询。
这是一个快速示例
declare @sqlstatement nvarchar(4000)
declare @table sysname
set @table = 'yourTableName'
set @sqlstatement = 'SELECT * FROM ' + QUOTENAME(@table)
exec(@sqlstatement)
当您使用表变量时,您可以做任何您想做的事情。您必须将变量定义为:
declare @name table (<column list>)
这是声明临时表的替代方法。
除此之外,我完全同意 bluefeet。你应该阅读他发布的链接。
是的,使用动态 sql 语句来构建您的 select 语句。
-- Procedure input parameters
@TableName varchar(50)
-- Query guts
Declare @sql varchar(2000)
Set @sql = 'Select columnname from ' + @TableName
exec (@sql)