SQL如何使用别名通过t-sql携带表名

时间:2014-06-05 14:58:19

标签: sql sql-server tsql

这可能是一个简单的问题,如果没有明确表达,我很抱歉。如果我能更清楚地说出来......我可能能够在网上找到答案。

我想要做的是,能够在我的SQL顶部只写一次表名,让系统通过我的其余SQL来传递它。我基本上是用像mindate那样的个人值来做这件事,但不能让它适用于整个表格。

这有效:

Use DB
declare @mindate int
select @mindate = min(dateid) from dbo.Mytable
print @mindate

这不起作用(显然)

Use DB
set dbo.Mytable = TB
declare @mindate int
select @mindate = min(dateid) from TB
print @mindate  

我尝试过不同的东西,但他们甚至不值得张贴这个问题。我不能自己解决这个问题。

1 个答案:

答案 0 :(得分:1)

不幸的是,如果查询是静态的,则表名和列名是静态的。

对于动态SQL,您需要动态构建整个查询并使用sp_executesql来执行它。

pros and cons of dynamic sql上有关using dynamic sql found here.

的更多信息的一些信息

一个非常基本的例子:

DECLARE @fullsqlcommand varchar(1000)
SET @fullsqlcommand = 'SELECT * from yourtable'
EXEC(@sqlCommand)

这些是有用的stackexchange问​​题,我从其中一个得到了我的答案示例: