關(guān)系Table 結(jié)構(gòu):
IF OBJECT_ID('dbo.BT_LinksRolesRelation') IS NOT NULL DROP TABLE dbo.BT_LinksRolesRelation;GOCREATE TABLE BT_LinksRolesRelation(Role_Id INT REFERENCES BT_Role(Role_Id),Link_Id INT REFERENCES BT_Link(Link_Id),PRIMARY KEY(Role_Id, Link_Id))
臨時(shí)中間表@tempRoleLinkTable:DECLARE @tempRoleLinkTable TABLE(Role_Id int,Link_Id int)
給中間表@tempRoleLinkTable插入值,條件是外界傳入值 Link_Id (3,14,25,36),Role_Id = 3,這些LInk_Id 取值個(gè)數(shù) 會(huì)變化,Role_Id取值會(huì)變化,但結(jié)構(gòu)是不變的;如果外界傳入的值構(gòu)成的那條記錄在關(guān)系Table中存在,就把 條記錄保存到臨時(shí)表@tempRoleLinkTable中:INSERT INTO @tempRoleLinkTable(Role_Id,Link_Id) SELECT Role_Id,Link_Id FROM BT_LinksRolesRelation AS BTWHERE BT.Role_Id = 3 AND BT.Link_Id IN (3,14,25,36)
如果關(guān)系表中Link_ID?有 3,14,25三條,? 則插入到臨時(shí)表中的數(shù)據(jù)為 3,14,25; ?36這條數(shù)據(jù)在關(guān)系表中不存在,那么就沒有被插入臨時(shí)表中去.
從關(guān)系表中刪除條目,這些要被刪除的條目是剛被先出來插入臨時(shí)表中的條目:
DELETE FROM BT_LinksRolesRelation WHERE (Role_Id,Link_Id) in( ?SELECT? Role_Id,Link_Id ?FROM @tempRoleLinkTable
)上面不能夠根據(jù)條件去刪除,錯(cuò)誤出現(xiàn)在什么地方呢? 正確的刪除SQL語句應(yīng)該怎么寫呢?
求大俠指點(diǎn)。。。
根據(jù)TableA的結(jié)果,Delete TableB 中對應(yīng)的項(xiàng)
哆啦的時(shí)光機(jī)
2018-12-07 13:19:26