• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sp_executesqlを実行してもテーブルコピーができない。)

sp_executesqlを使用したテーブルコピーができないエラーの対処法

このQ&Aのポイント
  • sp_executesqlを使用してテーブルのコピーを作成しようとしたときに、エラーが発生する問題があります。
  • エラーメッセージは「メッセージ 214、レベル 16、状態 2、プロシージャ sp_executesql、行 1 プロシージャにはデータ型 'ntext/nchar/nvarchar' のパラメータ '@statement' が必要です。」です。
  • このエラーは、パラメータのデータ型に誤りがあることが原因です。@statementパラメータのデータ型を修正することで問題が解消されます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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は、表名や列名を、可変にする機能ではありません。

katana0514
質問者

お礼

chukenkenkouさん返信ありがとうございます。 chukenkenkouさんのおかげで納得いきました。 ありがとうございました。

関連するQ&A