sp_executesql 注意事項

 之前工作時有過這個錯誤


當我用sp_executesql執行的時候發生了錯誤,因此查了篇文章,這篇文章是當作紀錄。


當初我也是像這段SQL一樣無法查出內容


DECLARE @sql nVARCHAR(max);

SET @sql = 'SELECT * FROM dbo.T1 WHERE c1=@c1 and c2 = @c2 AND c3 = @c3;';

EXECUTE sp_executesql @sql

, N'@c1 int, @c2 varchar, @c3 nvarchar'

,1, '1111111111111111111111', N'1111111111111111111111'


後來發現是因為sp_executesql 的@c2 @c3裡面的varchar 被預設為長度1

自然找不到東西 因為SELECT * FROM dbo.T1裡面的值最多只有一位


參考:

https://dotblogs.com.tw/rainmaker/2015/10/01/153472

留言

這個網誌中的熱門文章

無法載入檔案或組件 'System.IO.Compression' 或其相依性的其中之一。

MongoDB 入門

javascript 更改屬性及創建標籤