2009-04-16 11 views
1

ごめんなさい。私はダンボールだと思われる!ライブデータベースとテストデータベースを比較してクエリを実行すると、クエリは正常に機能します...そのようなことにもっと注意を払う必要があります。複数のデータベースのCountステートメントの問題

下記の文に問題があります。 1つのデータベース(DBCATALOG.dboには対応していません)に対して実行すると問題なく動作します。私がその文をそのまま実行しようとすると、不正確な構文が '<'にあります。 私はまた、すべてのデータベース用の共用体を作成するツールを使用しようとしました(2番目の文を参照)。その結果、無効なオブジェクト名エラー(無効なオブジェクト名 'TF7-User-Demo-ScheduledRestore-03.dbo.LinkedDocumentFolderTable'、無効なオブジェクト名 'TF7-TestDatabase-ScheduledRestore.dbo.LinkedDocumentFolderTable'など)が発生します。 それは。[dbo]に縛られているようですが、私は問題の原因を知りません。数え切れないほど多くのデータベースで数えられないことが書かれています。

SELECT CNT=COUNT(*) 
FROM <DBCATALOG>.[dbo].[LinkedDocumentFolderTable] 
WHERE IsUnmanagedFolder = 1 


SELECT 'TF7-User-Demo-ScheduledRestore-03' AS DBCatalog, * FROM(SELECT COUNT(*) 
FROM [TF7-User-Demo-ScheduledRestore-03].[dbo].[LinkedDocumentFolderTable] 
WHERE IsUnmanagedFolder = 1)rsOne 

UNION ALL 

SELECT 'TF7-TestDatabase-ScheduledRestore' AS DBCatalog, * FROM(SELECT COUNT(*) 
FROM [TF7-TestDatabase-ScheduledRestore].[dbo].[LinkedDocumentFolderTable] 
WHERE IsUnmanagedFolder = 1)rsOne 

答えて

1

あなたの構文は奇妙なようです。次を試す:

SELECT 'TF7-User-Demo-ScheduledRestore-03' AS DBCatalog, COUNT(*) 
FROM [TF7-User-Demo-ScheduledRestore-03].[dbo].[LinkedDocumentFolderTable] 
WHERE IsUnmanagedFolder = 1 

また、すべての必要なアクセス許可が設定されていますか? (私は質問しない方がいいでしょう、同じサーバーにTF7-User-Demo-ScheduledRestore-03のようなデータベースはありますか?)

+0

まだエラーが発生しています...無効なオブジェクト名 'TF7-User-Demo-ScheduledRestore-03.dbo.LinkedDocumentFolderTable'。 –

+0

はい、すべてのデータベースはダウンタウンのサーバーに保持されています。クエリアナライザを使用してクエリを実行しています。 –

+0

あなたの問題を解決しましたか?それ以外の場合、私はあなたの受け入れを理解できません:) .dboをスキップするとどうなりますか? DBとテーブル名[TF7-User-Demo-ScheduledRestore-03]のみを使用しています。[LinkedDocumentFolderTable]? sp_databasesはそのデータベースをまったく表示しますか?多分それはロードされていないか、何か? – Arvo

0

は、私はあなたが実際に何をしようとして全くわからないんだけど、それらの角度(<>)と正方形の角かっこ([])は、クエリを持っていることが有効ではありません。

使用しているデータベースエンジンはどれですか?

+0

私はSQL 2005(私が思う)、SQLクエリアナライザのバージョンSQL 8.00.760で作業しています。 。[dbo]を使用して100個のデータベースにわたってカウントを実行して、各データベースを呼び出しようとしています。 –

+0

これは、<>と[] ....を削除すると受信するエラーです。無効なオブジェクト名 'DBCATALOG.dbo.LinkedDocumentFolderTable'です。 –

0

引用符で囲まれたSQL Serverの識別子は、 "<"と ">"ではなく、( "["と "]")ので、最初のエラーが発生しているのは私の推測です。

データベースの名前は実際にTF7-User-Demo-ScheduledRestore-03などですか?

サブクエリから選択する場合は、サブクエリ内のすべての列に、列名がまだない場合はエイリアスを付ける必要があります。例:

(SELECT COUNT(*) AS my_count) 
+0

それらの一部です。私たちの命名法は、customername-locationです。上記の場合、これは当社のデモデータベースです。 –

関連する問題