sql-server - 我可以使用变量来存储linkedServer 名称,然后使用它直接查询该服务器上的数据库吗?
问题描述
我目前在脚本中有代码,看起来像:
SELECT * FROM [linkedServerName].database1.dbo.tableA;
SELECT * FROM [linkedServerName].database1.dbo.tableB;
SELECT * FROM [linkedServerName].database1.dbo.tableC;
除了它不像这个那么整洁,而且实际上在很长的脚本中散布着一些参考资料。
我将需要在需要更改linkedServer 名称的许多不同测试环境中运行此脚本。
有没有办法可以将这些存储在一个变量中,这样我只需要进行 1 次调整?
(我尝试使用同义词,但似乎我只能在表级别做到这一点,所以我需要它们的倍数,这违背了我想要实现的目的。)
解决方案
可以通过在数据库项目中使用 sqlcmd 变量 https://docs.microsoft.com/en-us/sql/ssdt/add-database-reference-dialog-box?view=sql-server-ver15#:~:text =a%20composite%20project-,In%20Solution%20Explorer%2C%20right%20click%20References%20and%20select%20Add%20Database,and%20paste%20it%20into%20your%20。DACPAC 和 cmdvariable 可用于满足您的要求