我有一張桌子。此表中有資料,每個資料旁邊都有一個復選框。可以多選。用戶進行選擇后,所選列的 id 編號將進入陣列。我將陣列轉換為字串并將其發送到存盤程序,然后運行以下存盤程序:
@ResultsIds 的示例值:65、66、67、68、125
@ResultsIds nvarchar(250)
UPDATE MyTable SET [IsVerified] = 1 WHERE Id IN (@ResultsIds)
我得到了這個錯誤:
將 nvarchar 值 '65, 66, 67, 68, 125' 轉換為資料型別 int 時轉換失敗。因為 [Id] 列是 int 資料型別。
我嘗試了 SQL 的 CAST 和 CONVERT 函式,但沒有成功。
uj5u.com熱心網友回復:
SQL Server 不會自動執行此操作。假設您使用的是最新版本,您可以這樣做:
declare @ResultsIds nvarchar(250) = '65,66,67,68,125'
UPDATE MyTable
SET [IsVerified] = 1
WHERE Id IN (
select [value]
from string_split(@ResultIDs, ',')
)
uj5u.com熱心網友回復:
declare @ResultsIds nvarchar(250)='65,66,67,68,125'
UPDATE MyTable SET [IsVerified] = 1 WHERE cast(Id as varchar) IN (@ResultsIds)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/449520.html
下一篇:SQL位元組轉換函式
