2017-02-01 8 views
0

SQL Server 2014の超簡単なクエリに取り組んでいます。私のやりたいことは、システムが更新後にSQL Serverとインターフェイスできることを確認することです私はそれが接続を正しく行い、サーバー内のテーブルを見つけることを確認する必要があります。SQL ServerクエリのSELECTエラー(現在LIMITを試しています)

試み1:構文エラー:

SELECT TOP (1) * 
From [X].[dbo].[Y] 
WITH (NOLOCK); 

しかし、どうやら「トップ」は、いくつかのより多くを追加するために、SQL Server 2014 とサポートオプションではありません、ここではそれを実行しようとしたときに、私が得る正確なエラーがあります。トークン「Top」は無効です。演算子の大文字小文字を確認してください(例: 'or'と 'OR')。関数名の後ろに角括弧(Now()、例えばLen( "abc"))を使用しているかどうかを確認してください。

試み2:

SELECT * 
From [X].[dbo].[Y] 
WITH (NOLOCK) 
LIMIT (1); 

1は、私は[]、 "" の間にあるテキスト、およびFunctionNameは(として機能する)との間でデータ項目を配置する必要があることを私に伝えます。しかし、...私はそれらのどれを見逃したかわかりません。

誰かが私のクエリが通過しない理由について、誰かが何かを明らかにすることができますか?どんな助けもありがとう。

+0

まず、NOLOCKは使用しないでください。それはあなたが起こることを期待していない問題を引き起こします。 –

+0

制限はSQl Serverではサポートされていません。しかし、トップ1です。自分のSQL Serverデータベースに似たクエリを実行できます。あなたはどんな具体的なエラーを出していますか? – HLGEM

+0

私はNOLOCKが大量に売買されたサーバーで良いアイデアだと言われました。いずれにしてもそれを削除しても問題は解決しません。 McNets、私は 'top'が無効なトークンであると言われているので、そのように試すことはできません。 – user5504808

答えて

0

最初の試みはうまく動作するはずです:

SELECT TOP (1) * 
From [dbo].[Y] 
WITH (NOLOCK); 

は、それが動作しない場合は、エラーメッセージが含まれている必要がありexample

を参照してください。

+0

質問を正確なエラーメッセージで更新しました。 "[X]"部分の – user5504808

+1

には、データベース名が正しく指定されています。 [Y]は、dboスキーマ内の有効なテーブル名でなければなりません。 1の周りの括弧は不要です。検出を探しているだけの場合は、*の代わりに列名を指定できます。さらに、INFORMATION_SCHEMA.TABLESビューに存在をテストすることもできます。しかし私は自分のDB( "SELECT TOP 1 * FROM [dbo]。[MyTable]")で同様のことをしてくれました。 – pmbAustin

+0

Aaaaah、私はそれがそれのような何かばかだと分かっていた! pmbAustinが入力した形式で試してみるとうまくいきます。トップエラーで投げられたばかりだった。ありがとうございました! – user5504808

関連する問題