T-SQL表名别名

use*_*628 5 t-sql variables

在我的T-SQL脚本中,我多次引用相同的长表名.我在不同的表上使用此查询.

有没有办法按变量引用表名?如果是这样,我可以在脚本将使用的顶部简单地声明一个变量,只需通过设置值,我可以在各种表上运行它而无需在脚本中进行更改.

Joh*_*nFx 8

几个选项.

在单个SQL语句中,您可以对表名进行别名,如下所示:

SELECT * 
FROM MySuperLongTableName T
WHERE T.SomeField=1
Run Code Online (Sandbox Code Playgroud)

如果您需要跨多个脚本执行大量语句,则同义词可能是更好的选择:

CREATE SYNONYM SuperT FOR dbo.MySuperLongTableName
Run Code Online (Sandbox Code Playgroud)


Mar*_*ith 1

您可以为该表创建一个同义词,但显然您需要确保在脚本运行时没有人更改同义词的定义(并且没有并行调用脚本)

您在 SSMS 中运行这些吗?如果是这样,您可以设置SQL CMD模式(在“查询”菜单上)并使用

:setvar tablename "spt_values" 

use master

select * from $(tablename)
Run Code Online (Sandbox Code Playgroud)