关系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 关注
- 508 浏览
添加回答
举报
0/150
提交
取消