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