SQL表选择

标签 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

有什么想法吗?

最佳答案

你需要使用动态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)

关于SQL表选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4968017/

相关文章:

sql-server - 如何使用 SQL Server 在 where 条件下使用 case 子句?

sql-server - 阻止查询编辑器更改 SQL Server Management Studio 中的 View

sql - 具有动态(未知)列数的 T-Sql 查询

sql - 无法从 SQL Server Management Studio 编辑架构或数据

sql - 在需要恢复的事件行中保留主键

sql-server - 数据库中已经有一个名为 I_XXXRECID 的对象

sql - 将 SQL Server 中的字符串拆分为最大长度,将每个字符串作为一行返回

jquery - 多雇主对员工管理

sql - 如何在 SQL Server 中查找时、分、秒(所有结果)的时差

sql - 查看是什么导致了 SQL 触发器?