我檢查表中是否存在列。如果存在,我根據第一個表中的列更新第二個表中的列。更新SQL Server 2005中的表列
問題是,更新在執行時不應執行並導致錯誤。
我在表Service_requests_details
, 檢查Requested_by
柱的存在,我再service_requests
基於表Service_Requests_Details
requested_by
列更新的列。
問題是,Requested_By
可能不存在於表Service_requests_details
。
IF EXISTS (SELECT * FROM sys.columns WHERE Name = N'Requested_By' and object_ID = object_ID(N'Service_Requests_Details'))
BEGIN
Update SR
Set SR.Requested_By = SRD.Requested_By
FROM Service_Requests SR
INNER JOIN Service_Requests_Details SRD ON SRD.Request_Index = SR.Service_Request_Index
END
GO
更新:
謝謝大家誰回答。感謝@SqlAcid的答案。
這是什麼回報? SELECT * FROM sys.columns WHERE Name = N'Requested_By'and object_ID = object_ID(N'Service_Requests_Details'。請記住,程序參數也保存在sys.columns中,您可以使用相同名稱的過程... – Sparky
嘗試添加額外'U'給你object_id()(第二個參數是對象類型,加上'U'用於表) – Sparky
正如Dylan所建議的,我對Information_Schema.columns進行了同樣的處理,並且遇到了同樣的問題 – AlwaysAProgrammer