Tsql 在生成表查询中使用同义词(“select into”)
我一直认为T-SQL中的同义词只是一个方便的缩写。然而,当我做以下事情时 为T\u短名称\u备份创建同义词备份\u表 去 挑选* 进入备份表 来自T_的短名称Tsql 在生成表查询中使用同义词(“select into”),tsql,synonym,select-into,Tsql,Synonym,Select Into,我一直认为T-SQL中的同义词只是一个方便的缩写。然而,当我做以下事情时 为T\u短名称\u备份创建同义词备份\u表 去 挑选* 进入备份表 来自T_的短名称 。。。我得到的错误是已经有一个名为BACKUP_TABLE的对象。我做错什么了吗?同义词是指向其他SQL表的指针。它们非常有用,这取决于你想做什么。您可以将它们指向另一个数据库中的表或另一台服务器上的表(通过链接服务器)。我们在ETL中充分利用了它们 我用于生成我的流程: 查询以动态生成同义词: SELECT 'CREATE S
。。。我得到的错误是已经有一个名为BACKUP_TABLE的对象。我做错什么了吗?同义词是指向其他SQL表的指针。它们非常有用,这取决于你想做什么。您可以将它们指向另一个数据库中的表或另一台服务器上的表(通过链接服务器)。我们在ETL中充分利用了它们 我用于生成我的流程: 查询以动态生成同义词:
SELECT
'CREATE SYNONYM [dbo].[' +TABLE_NAME+ '] FOR [' + 'Put database name here or remove' + '].[dbo].['+TABLE_NAME+']'
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_TYPE = 'BASE TABLE'
从那里,您只需从表中选择*u NAME
现在,回到你的问题上来。您为BACKUP\u TABLE
创建一个同义词,该同义词指向T\u SHORT\u NAMES\u BACKUP
尝试:从备份表中选择*
要了解有关同义词的更多信息:
从sys中选择name、base\u object\u name。同义词是指向其他SQL表的指针。它们非常有用,这取决于你想做什么。您可以将它们指向另一个数据库中的表或另一台服务器上的表(通过链接服务器)。我们在ETL中充分利用了它们
我用于生成我的流程:
查询以动态生成同义词:
SELECT
'CREATE SYNONYM [dbo].[' +TABLE_NAME+ '] FOR [' + 'Put database name here or remove' + '].[dbo].['+TABLE_NAME+']'
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_TYPE = 'BASE TABLE'
从那里,您只需从表中选择*u NAME
现在,回到你的问题上来。您为BACKUP\u TABLE
创建一个同义词,该同义词指向T\u SHORT\u NAMES\u BACKUP
尝试:从备份表中选择*
要了解有关同义词的更多信息:从sys中选择名称、基本对象名称。同义词作为选择。。。into…
始终使用给定名称创建一个新的表对象不能存在同名的对象
只需使用选择。。。在…
standalone中,无需添加同义词
但是如果您想在备份中添加额外的行,请使用插入到。。。改为选择…
:
insert into
T_SHORT_NAMES_BACKUP
select
*
from
T_SHORT_NAMES
作为选择。。。into…
始终使用给定名称创建一个新的表对象不能存在同名的对象
只需使用选择。。。在…
standalone中,无需添加同义词
但是如果您想在备份中添加额外的行,请使用插入到。。。改为选择…
:
insert into
T_SHORT_NAMES_BACKUP
select
*
from
T_SHORT_NAMES
好的,这回答了我的问题:不能在make表查询中使用同义词。但我认为SSMS可以区分同义词对象和表对象。无论如何,我需要一个同义词。脚本中有几个查询,每个查询都使用名称“T_SHORT_name_Backup”,这个名称每周都会更改。我不想更改此名称的所有实例。好的,那么只需更改语句的顺序即可。首先使用select>将备份创建到一个新表中,并使用新的对象名。。。进入…
,然后创建此表对象的同义词。回答得好。我想这是我能期望的最好的了。我每周还有两行要换,而不是一行,但你不可能拥有全部!好的,这回答了我的问题:不能在make表查询中使用同义词。但我认为SSMS可以区分同义词对象和表对象。无论如何,我需要一个同义词。脚本中有几个查询,每个查询都使用名称“T_SHORT_name_Backup”,这个名称每周都会更改。我不想更改此名称的所有实例。好的,那么只需更改语句的顺序即可。首先使用select>将备份创建到一个新表中,并使用新的对象名。。。进入…
,然后创建此表对象的同义词。回答得好。我想这是我能期望的最好的了。我每周还有两行要换,而不是一行,但你不可能拥有全部!