エラー

[SQLServer] エラー「プロシージャでは型 'ntext/nchar/nvarchar' のパラメーター '@statement' を想定しています。」が発生する場合

以下のように表示されます。

(エラー)
214 「プロシージャでは型 'ntext/nchar/nvarchar' のパラメーター '@statement' を想定しています。」

原因

  • sp_executesqlで実行する時のSQL文やパラメータの文字コードがUnicodeでない

エラーとなる例

(結果)
プロシージャでは型 'ntext/nchar/nvarchar' のパラメーター '@statement' を想定しています。

対処法

  • sp_executesqlに指定するSQLと変数の文字コードはUnicodeである必要があります。
    なので、SQL文の先頭にはNを、変数はnchar型またはnvarchar型にすればOKです。

エラー解消

SQL文字列の先頭にNを指定、型をvarchar⇒nvarcharにしています。

備考

  • sp_executesql は、動的に作成したSQLを実行するためのコマンドです。

-エラー