sql 在將 nvarchar 值 轉換成數據類型 int 時失敗。


假設有存儲過程:proc_test2

create proc proc_test2

@Id int

begin 

as

declare @sql varchar(max)

@sql = 'select * from test2 where 1=1'

if @Id <> 0

set @sql += ' and Id = ' +@Id

exec (@sql)

end

 

存儲過程需要的參數是int類型,按道理直接傳值(+@Id)是沒有問題的,但是在執行存儲過程的時候,卻彈出

“sql 在將 nvarchar 值 轉換成數據類型 int 時失敗。”

這時候你需要轉換一下就ok了!

 

正解是:set @sql += ' and Id = ' +Cast(@Id as nvarchar(50))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM