我正在尝试创建一些动态选择表的方法,以便根据发送到数据库的ID运行该过程。类似的东西:
@TableId int
As
Declare @nameoftable varchar(50)
select @nameoftable = Nameoftable from tablelist where id = @tableid
-- returning on selected table
Select somestuff
from @nameoftable
有什么想法吗?
答案 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,它帮了我很多。