0

我有两张桌子。表 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

SELECT ID, MyVolume = DATALENGTH([Binary])
FROM [VAULT].[TABLEA]
4

2 回答 2

4

试试这个查询:

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 字段相关。

于 2013-06-11T15:15:08.153 回答
1
UPDATE tableB
SET    [volume] = (SELECT RetrieveAccountNumber.AccountNumber 
                          FROM   RetrieveAccountNumber 
                          WHERE  tableB.leadid =RetrieveAccountNumber.LeadID) 
WHERE Sales_Import.leadid = (SELECT  RetrieveAccountNumber.LeadID 
                             FROM   RetrieveAccountNumber 
                             WHERE  tableB.leadid = RetrieveAccountNumber.LeadID)
于 2013-06-11T15:08:35.650 回答