當使用 sp_executesql 等動態 SQL 程序時,參數 @statement 必須為 Unicode 字串類型(ntext、nchar、nvarchar)。若傳入 varchar 類型變數,將引發類型不匹配錯誤。
將變數宣告從 varchar 改為 nvarchar:
-- 錯誤寫法
DECLARE @strCountTmp VARCHAR(100);
-- 正確寫法
DECLARE @strCountTmp NVARCHAR(100);
同理,所有傳遞給動態 SQL 的字串參數、字串常數建議均使用 N'字串' 格式或 nvarchar 類型,避免隱含轉換導致的效能損耗或錯誤。