SQL - 我可以传递一个要在FROM语句中使用的变量吗?

时间:2012-06-18 17:22:33

标签: sql-server tsql

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

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

然而,它被宣布。

SELECT (list of columns)
FROM @database_table

3 个答案:

答案 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)