0

この質問は冗長かもしれませんが、正確な解決策が得られなかったので投稿しています(実際のシナリオを読んでください)。すべてのテーブルと対応する番号を返す次のスクリプトがあります。行の。

    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 で 4 つのパーティションの名前付けを使用できません。エラーが発生します:The multi-part identifier "My_Database1.sysobjects.Name" could not be bound.

実際のシナリオ: 複製データベースがあり、どのテーブルのデータが元のデータベースから移動されていないかを知りたいです。

代替ソリューションも役立ちます。

4

3 に答える 3

1

接続しているデータベースとは異なるデータベースのsysテーブルにクエリを実行できるはずです(もちろん、それらが同じインスタンス上にある限り)。sysntax を確認してください。スキーマ名 sys が欠落していると思われるため、次のようになります。

SELECT * FROM My_Database1.sys.sysobjects
于 2013-07-19T10:04:57.283 に答える
0

システム データ テーブルには sys オブジェクトを使用してください:

select sys_obj.* from DatabaseName.Sys.sysobjects sys_obj
于 2013-07-19T10:04:47.287 に答える