/*****************************************
循环删除多个表中的主外键关联数据
要求:外键关键字段要一致
@ListTabName:可容纳多个表名以逗号(,)分隔,
子表在前,主表在后
@Uid:用户主键ID
@author:Kelly
*****************************************/
CREATE PROCEDURE SP_DelUser
(
@ListTabName VARCHAR(1000) ,
@Uid NVARCHAR(30)
)
AS
BEGIN
DECLARE @sql NVARCHAR(500)
DECLARE @tblName NVARCHAR(50)
WHILE ( CHARINDEX(',', @ListTabName) <> 0 )
BEGIN
--取第一个,前的表名
SET @tblName = SUBSTRING(@ListTabName, 1,
CHARINDEX(',', @ListTabName) - 1)
--将第一个','后面的内容重新赋给变量
SET @ListTabName = STUFF(@ListTabName, 1,
CHARINDEX(',', @ListTabName), '')
SET @sql = 'DELETE ' + @tblName + ' WHERE UID=' + @Uid
PRINT @sql
--取最后一个表名
IF ( CHARINDEX(',', @ListTabName) = 0 )
BEGIN
SET @sql = 'DELETE ' + @ListTabName + ' WHERE UID='
+ @Uid
PRINT @sql
END
EXEC @sql
END
END
帮一个妹子写的,刚写完妹子就表示不用了
哎~~天下武功,唯快不破
这是一个伤心的故事~~ToT~~