回答:
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
解決策は、タイプとSQL文字列の両方の前にNを付けて、2バイト文字列であることを示すことです。
DECLARE @SQL NVARCHAR(100)
SET @SQL = N'SELECT TOP 1 * FROM sys.tables'
EXECUTE sp_executesql @SQL