通过我们MyDatabase
上的程序,我找到了几个引用自己的程序,例如
SELECT colA, colB FROM [MyDatabase].[Schema].[Table]
以这种方式包含数据库名称有什么好处吗?我看不出有什么特别的理由这样做,这使得触发器的便携性降低了。
当然,如果您正在进行
,则需要包含数据库名称SELECT colC, colD FROM [MyOtherDatabase].[Schema].[Table]
这是一个相当小的问题,但我的第一反应是“可能不是最佳做法”所以我想知道是否有任何好处我缺少或者我们是否应该从所有这些引用中删除db名称。
答案 0 :(得分:1)
评论时间有点长。
我会选择删除数据库名称,但我不知道这是否是“最佳做法”。在进行开发时,我有时倾向于在服务器上保留同一数据库的多个版本。代码中的特定数据库引用会导致问题。 (更好的开发环境是拥有另一个专用的SQL Server实例。)
但是,您应该考虑:
答案 1 :(得分:1)
考虑到这一点,所有者是dbo
;你可以改变这条线
SELECT colA, colB FROM [MyDatabase].[Schema].[Table]
说
use [MyDatabase]
GO
SELECT colA, colB FROM [Table]
通常在您的过程中,所有查询都将引用同一数据库中的表,但如果您有具有跨数据库引用的查询,则必须使用3部分名称DB.Owner.Table