1
我有2個表:CRM_Inquiries
和ICS_Subscribers
。 CRM_Inquiries具有主鍵InquiryID
和外鍵SubID
以將該表與ICS_Subscribers
以及Fname
和Lname
相關聯。 ICS_Subscribers的主關鍵字爲SubID
,列SubFirstName
和SubLastName
。我需要運行查詢來檢索CRM_Inquiry行,並使用ICS_Subscriber表中的SubFirstName和SubLastName更新Fname和Lname值。我希望這是有道理的..用子表值更新表
我寫了一個腳本來完成這個,但我想知道是否有更好的方法來做到這一點。
CREATE TABLE #inq(
InquiryID INT,
SubID INT
)
INSERT INTO #inq
SELECT DISTINCT InquiryID, SUbId
FROM CRM_Inquiries
WHERE LName = 'Poe' AND SubID IS NOT NULL
DECLARE @totalCount INT
SELECT @totalCount = COUNT(*) FROM #inq
PRINT @totalCount
WHILE(@totalCount > 0)
BEGIN
DECLARE @subId varchar(250)
DECLARE @inquiryID INT
SELECT TOP 1 @subId = subID, @inquiryID = inquiryID FROM #inq
PRINT 'SubID = ' + @subID
PRINT 'InquiryID= ' + CAST(@inquiryId AS VARCHAR(MAX))
UPDATE CRM_Inquiries
SET FName = (SELECT SubFirstName FROM ICS_Subscribers WHERE SubID = @subId),
LName = (SELECT SubLastName FROM ICS_Subscribers WHERE SubID = @subId)
WHERE InquiryID = @inquiryID
DELETE FROM #inq WHERE InquiryID = @inquiryID
SELECT @totalCount = COUNT(*) FROM #inq
PRINT @totalCount
END
DROP TABLE #inq
LName ='Poe'完全是任意的,我有一個更復雜的查詢,但爲了我剛創建的例子。