可能这个问题是多余的,但我发布它是因为我无法得到确切的解决方案(请阅读实际情景)。 我有以下脚本返回所有表和相应的否。行。
SELECT
sysobjects.Name, sysindexes.Rows
FROM
sysobjects
INNER JOIN sysindexes
ON sysobjects.id = sysindexes.id
WHERE
type = 'U'
AND sysindexes.IndId < 2 ORDER BY ([Rows])
现在,我想在不同的数据库(具有相同的结构)上将此结果集与类似的结果集连接起来。我无法使用sysobjects进行四次分区命名。它给出了错误:The multi-part identifier "My_Database1.sysobjects.Name" could not be bound.
实际场景:我有一个重复的数据库,想知道哪些表数据尚未从原始数据库移动。
任何替代解决方案也会有所帮助。
答案 0 :(得分:1)
将.dbo放在“My_Database1。和sysobjects.Name”之间,如
My_Database1.dbo.sysobjects
答案 1 :(得分:1)
你应该在不同的数据库上查询sys表而不是你所连接的数据库(当然,只要它们在同一个实例上)。检查你的sysntax,我相信你缺少模式名称sys所以它会是:
SELECT * FROM My_Database1.sys.sysobjects
答案 2 :(得分:0)
请将sys对象用于系统数据表:
select sys_obj.* from DatabaseName.Sys.sysobjects sys_obj