我有两张桌子。表A和表B。 TableA包含一个varbinary(max)列-名为[BinaryA] TableB包含一个包含每个varbinary卷的列(名为“ Volume”,类型为“ Long”)。
为了选择我查询的所有卷
SELECT ID, MyVolume = DATALENGTH([Binary]) FROM [VAULT].[TABLEA]
比,我想用它的体积更新tableB。
然后我写
update [TableB] set [VOLUME] = ( SELECT MyVolume = DATALENGTH([Binary]) FROM [VAULT].[TABLEA] ab WHERE id = ab.[Id])
我收到比
Cannot insert the value NULL into column 'Volume', table 'MySchema.Asset'; column does not allow nulls. UPDATE fails.
虽然我在运行时没有收到任何NULL
尝试使用此查询:
UPDATE TableB SET TableB.[VOLUME] = DATALENGTH([T2.Binary]) FROM TableB INNER JOIN [VAULT].[TABLEA] T2 ON TableB.TAL_ID = T2.TAL_ID
假设TableB和[VAULT]。[TABLEA]通过ID字段关联。