關系Table 結構:
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))
臨時中間表@tempRoleLinkTable:DECLARE @tempRoleLinkTable TABLE(Role_Id int,Link_Id int)
給中間表@tempRoleLinkTable插入值,條件是外界傳入值 Link_Id (3,14,25,36),Role_Id = 3,這些LInk_Id 取值個數 會變化,Role_Id取值會變化,但結構是不變的;如果外界傳入的值構成的那條記錄在關系Table中存在,就把 條記錄保存到臨時表@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)
如果關系表中Link_ID?有 3,14,25三條,? 則插入到臨時表中的數據為 3,14,25; ?36這條數據在關系表中不存在,那么就沒有被插入臨時表中去.
從關系表中刪除條目,這些要被刪除的條目是剛被先出來插入臨時表中的條目:
DELETE FROM BT_LinksRolesRelation WHERE (Role_Id,Link_Id) in( ?SELECT? Role_Id,Link_Id ?FROM @tempRoleLinkTable
)上面不能夠根據條件去刪除,錯誤出現在什么地方呢? 正確的刪除SQL語句應該怎么寫呢?
求大俠指點。。。
3 回答

HUH函數
TA貢獻1836條經驗 獲得超4個贊
換了一種方法來解決這個問題,以前想批次性處理請求! 現在用ajax一個一個的處理請求,所以傳入的Link_ID是一個了,后臺再用存儲過程來解決這個問題,唯一不好的就是訪問數據庫次數多了,花時間大了一點兒,而存儲過程!又稍微緩解了一下..

交互式愛情
TA貢獻1712條經驗 獲得超3個贊
語法
DELETE FROM 表名稱 WHERE 列名稱 = 值
======================================
比如說、、刪除某行
DELETE FROM Person WHERE LastName = 'Wilson'
或者 刪除所有行
DELETE FROM table_name
或者:
DELETE * FROM table_name
- 3 回答
- 0 關注
- 547 瀏覽
添加回答
舉報
0/150
提交
取消