- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sp_executesqlを実行してもテーブルコピーができない。)
sp_executesqlを使用したテーブルコピーができないエラーの対処法
このQ&Aのポイント
- sp_executesqlを使用してテーブルのコピーを作成しようとしたときに、エラーが発生する問題があります。
- エラーメッセージは「メッセージ 214、レベル 16、状態 2、プロシージャ sp_executesql、行 1 プロシージャにはデータ型 'ntext/nchar/nvarchar' のパラメータ '@statement' が必要です。」です。
- このエラーは、パラメータのデータ型に誤りがあることが原因です。@statementパラメータのデータ型を修正することで問題が解消されます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
sp_executesql のSQL文とパラメタ宣言の部分のデータ型は、nvarcharなどのunicode系のデータ型でなければなりません。 >DECLARE @SQLString VARCHAR(500) >DECLARE @ParmDefinition VARCHAR(500) ↓ 修正要 DECLARE @SQLString NVARCHAR(500) DECLARE @ParmDefinition NVARCHAR(500) また、sp_executesqlの使用方法に、根本的な誤りがあるようです。 パラメタで可変にできるのは、条件式の値部分や受け取り変数の部分だけです。 sp_executesqlは、表名や列名を、可変にする機能ではありません。
お礼
chukenkenkouさん返信ありがとうございます。 chukenkenkouさんのおかげで納得いきました。 ありがとうございました。