ホームページ > データベース > mysql チュートリアル > 変数を使用した OPENROWSET クエリの「' ' 付近の構文が正しくありません」エラーを修正する方法

変数を使用した OPENROWSET クエリの「' ' 付近の構文が正しくありません」エラーを修正する方法

Susan Sarandon
リリース: 2025-01-03 22:53:41
オリジナル
839 人が閲覧しました

How to Fix

変数を使用した OPENROWSET クエリのトラブルシューティング

OPENROWSET 関数を使用して外部データにアクセスする場合、変数式を変数内に含めるとエラーが発生する可能性があります。クエリ文字列。そのような例の 1 つは、「' ' 付近の構文が正しくありません」というエラーです。これは、次のクエリに見られるように、OPENROWSET ステートメントで変数を連結しようとすると発生します。

SELECT * 
FROM OPENROWSET(
    'SQLNCLI',
    'DRIVER={SQL Server};',
    'EXEC dbo.sProc1 @ID = ' + @id 
 )
ログイン後にコピー

このクエリでは、変数 @id が ' ' 演算子を使用して EXEC ステートメントに追加されています。 。ただし、OPENROWSET はクエリ文字列での式の使用をサポートしていません。

解決策:

この問題を解決するには、OPENROWSET クエリで変数を直接使用することはできません。代わりに、動的 SQL を作成してパラメータを渡すことができます。以下に例を示します。

Declare @ID int
Declare @sql nvarchar(max)
Set @ID=1
Set @sql='SELECT * 
FROM OPENROWSET(
               ''SQLNCLI'',
               ''DRIVER={SQL Server};'',
               ''EXEC dbo.usp_SO @ID =' + convert(varchar(10),@ID) + ''')'

-- Print @sql
 Exec(@sql)
ログイン後にコピー

このソリューションでは、動的 SQL クエリを保持する変数 @sql を定義し、CONVERT() 関数を使用して変数 @ID を連結します。これにより、必要なパラメータを使用して動的 SQL ステートメントを実行できるようになります。

以上が変数を使用した OPENROWSET クエリの「' ' 付近の構文が正しくありません」エラーを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート