Yev*_*ago 2 t-sql visual-studio-2012 sql-server-data-tools
我正在处理一个tsql项目,并且我已经注意到现有代码使用的语法是我以前从未见过的。他们在数据库名称前面加了一个美元符号,以表示完全合格的地址。
这是一个例子:
SELECT c.AccountCode, FROM **[$(SmartAdmin)]**.dbo.Customers c
Run Code Online (Sandbox Code Playgroud)

如果我将数据库名称重命名为SmartAdmin.dbo.Customers,Visual Studio会抛出错误消息,提示“包含对对象的未解析引用”。
这似乎是与Visual Studio相关的事情,任何人都可以解释一下这是什么以及是否可以删除它。
请查看随附的屏幕截图,最后一个来自项目解决方案文件。


该[$(SmartAdmin)]语法在SSDT项目中用于引用其他数据库中的对象。确切地说,它是SQLCMD语法。
如果您有对的数据库引用SmartAdmin,并且已对引用进行了设置以便可以[$(SmartAdmin)]正确地引用它,那么这不是问题。看来问题出在另外两个引用[SmartAdmin]。改变它们的外观[$(SmartAdmin)].dbo.whatever。
这些引用为何有用的示例:我刚刚编辑了SSDT中的存储过程,以拼写错误的列名。在几秒钟内,该列名称用红色下划线。然后,我删除了数据库引用所依赖的列名。红色下划线消失了。我重新添加了数据库引用,该列再次用红色下划线。我更正了列名,红色的下划线消失了。
没有数据库引用,我将不得不等到存储过程被部署或可能执行后才能看到错误。有了数据库参考,我在编辑器中发现了问题。就像代码一样。
| 归档时间: |
|
| 查看次数: |
996 次 |
| 最近记录: |