1
我正在使用SQL Server代理作業爲我的內部Web應用程序創建主用戶表,從其他3個數據庫提取數據; Sharepoint,實踐管理系統和我們的人力資源數據庫。使用另一個嵌套查詢中的值更新SQL表
目前它去......
truncate table my_tools.dbo.tb_staff
go
insert into my_tools.dbo.tb_staff
(username
,firstname
,surname
,chargeoutrate)
select right(wss.nt_user_name,
,hr.firstname
,hr.surname
,pms.chargeoutrate
from sqlserver.pms.dbo.staff as pms
inner join sqlserver.wss_content.dbo.vw_staffwss as wss
on pms.nt_user_name = wss.nt_user_name
inner join sqlserver.hrdb.dbo.vw_staffdetails as hr
on wss.fullname = hr.knownas
go
的問題是,整個表作爲第一步清除所以我的自動遞增的主鍵/標識上tb_staff是一定要改變。另外,如果有人從共享點或PMS中刪除,則不會在此表上重新創建,這會導致整個數據庫不一致。
我想保留此表中的條目,即使它們從其他系統之一中刪除後也是如此。
我想我想要做的是: 1)馬克在tb_staff全部退出條目爲不活動(使用所謂的主動,並將其設置爲false列) 2)運行查詢的三個連接表和更新每個找到記錄,也標記爲活躍。
我看不到如何在Update語句中嵌套select語句,就像我在這裏使用Insert語句一樣。
我該如何做到這一點?
*請注意我已經將我的SQL編輯到4列並簡化了它,所以小錯誤可能是由於匆忙編輯造成的。真正的查詢要大得多。
以及更新標誌你也想插入新用戶?如果是的話,你在什麼版本的SQL Server?希望2008年,所以你可以使用`merge`! – 2011-01-10 15:41:34
是的,我想更新現有的條目並添加任何新條目。我正在使用SQL Server 2008. – Yeodave 2011-01-10 15:43:26