1. ホーム
  2. sql

[解決済み] sp_executesqlを使用しようとすると、「Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'」と表示されるのですが、なぜですか?

2023-01-24 19:17:33

質問

なぜこのようなエラーが発生するのでしょうか?

プロシージャは 'ntext/nchar/nvarchar' 型のパラメータ '@statement' を予期しています。

を使おうとすると sp_executesql ?

どのように解決するのですか?

NVARCHAR である必要があるのに、VARCHAR ステートメントを使用して sp_executesql を呼び出しているようです。

例:@SQL は NVARCHAR である必要があるため、これはエラーになります。

DECLARE @SQL VARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL

だから

DECLARE @SQL NVARCHAR(100)
SET @SQL = 'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL