我有两台服务器,其中包含我要比较的数据库模式:DEV
和TEST
。据我所知,他们都在运行SQL Server 2008.我已经编写了这个脚本:
SELECT
h.name AS object_name
,SCHEMA_NAME(h.schema_id) AS schema_name
,h.type_desc
,h.create_date
,h.modify_date
,td.create_date as 'First Pushed Date'
,td.modify_date as 'Last Pushed Date'
FROM
DEV.dev_dashboard.sys.objects h
left join
TEST.dashboard.sys.objects td on h.name = td.name
WHERE
td.modify_date < h.modify_date and
h.modify_date > '4/1/2014'
ORDER BY
td.modify_date DESC;
这个脚本在大多数情况下对我来说非常好,但某些数据库组合会产生错误:
OLE DB提供程序&#34; SQLNCLI10&#34;对于链接服务器&#34; TEST&#34;不包含表&#34;&#34;仪表板&#34;。&#34; sys&#34;。&#34;对象&#34;&#34;。该表不存在或当前用户没有该表的权限。
这让我非常困惑,因为似乎没有任何押韵或理由。如果我已加入DEV
,则会抱怨TEST
。如果我已连接到TEST
(使用相同的凭据),则会抱怨DEV
。如果我将DEV.dev_Dashboard
数据库(应该与DEV.Dashboard
匹配)与TEST.Dashboard
一起使用,如果我已连接到DEV
,我就不会出错,但如果我和#39; m已连接到TEST
。
我无法弄清楚模式,数据库和表格显然存在,并且我拥有所有内容的完全权限(通过Windows凭据)。为什么这么不一致?