SQL表选择

时间:2011-02-11 10:37:05

标签: sql sql-server tsql

我正在尝试创建一些动态选择表的方法,以便根据发送到数据库的ID运行该过程。类似的东西:

@TableId int
As

Declare @nameoftable varchar(50)

select @nameoftable = Nameoftable from tablelist where id = @tableid


-- returning on selected table

Select somestuff
from @nameoftable

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您需要使用动态SQL

@TableId int
As

Declare @nameoftable varchar(50)
select @nameoftable = Nameoftable from tablelist where id = @tableid

-- returning on selected table

declare @sql nvarchar(1000)
set @sql = 'Select somestuff from ' + Quotename(@nameoftable)
exec(@sql)

答案 1 :(得分:2)

在MS SQL Server中,您可以使用sp_executesql来执行动态查询。阅读The Curse and Blessings of Dynamic SQL,它帮了我很多。