2013-06-11 3 views
0

두 테이블이 있습니다. TableA 및 TableB.
TableA에는 varbinary (max) 열이 있습니다. 이름은 [BinaryA] 입니다. TableB에는 각 varbinary 볼륨을 포함하는 열 ("Volume", 유형 "Long")이 있습니다. 모든 볼륨을 선택하기 위해tsql - select 문에서 테이블 업데이트

은 내가 부피와 TableB의를 업데이트 할보다

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

를 쿼리합니다.

그때 내가

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

TableA와 TableB는 관련이 있습니까? subselect가 둘 이상의 행을 리턴하면 VOLUME을 subselect로 설정하는 데 실패합니다. tableA에 tableB를 가입 시키려고합니까? –

답변

4

이 쿼리를 시도 실행할 때 어떤 NULL을 받게 해달라고하지만 내가

Cannot insert the value NULL into column 'Volume', table 'MySchema.Asset'; 
column does not allow nulls. UPDATE fails. 

보다받을

update [TableB] 
set [VOLUME] = (SELECT MyVolume = DATALENGTH([Binary]) 
       FROM [VAULT].[TABLEA] ab 
      WHERE id = ab.[Id]) 

쓰기 :

UPDATE TableB 
SET TableB.[VOLUME] = DATALENGTH([T2.Binary]) 
FROM TableB 
INNER JOIN [VAULT].[TABLEA] T2 ON TableB.TAL_ID = T2.TAL_ID 

표 B와 [VAULT]. [TABLEA]가 ID 필드와 관련 있다고 가정합니다.

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) 
+1

RetrieveAccountNumber는 TableA와 어떤 관련이 있습니까? RetrieveAccountNumber는 어디에서 왔습니까? 그것은 운영 질문에 없습니다. –

+0

감사합니다 :-)이 솔루션도 작동합니다. – Jeb