T-Sql
更新和 Varbinary(Max)
我想將序列的值從第 1 行設置到第 2 行。
如果我執行:
Update [dbo].[TS_TaskSequence] set [Sequence] = 'the value of sequence' Where [TS_ID] = '16777234'
我得到:
不允許從數據類型 varchar 到 varbinary(max) 的隱式轉換。使用 CONVERT 函式執行此查詢。
如何正確轉換它?
您需要
CAST()
(CONVERT()
) 查詢中的硬編碼值作為 aVARBINARY(MAX)
,因為預設情況下,查詢中單引號中的值本身被視為VARCHAR
數據類型。您還可以使用以下
CROSS JOIN
查詢(無需對值進行硬編碼)來完全消除轉換任何內容的需要,因為查詢中的源和目標欄位都已經是 typeVARBINARY(MAX)
:UPDATE TS2 SET TS2.Sequence = TS1.Sequence FROM dbo.TS_TaskSequence AS TS1 CROSS JOIN dbo.TS_TaskSequence AS TS2 WHERE TS1.TS_ID = '16777230' AND TS2.TS_ID = '16777234'