循环删除多个表中的主外键关联数据

来源:互联网 发布:RBF神经网络算法 编辑:程序博客网 时间:2024/06/03 22:06

/*****************************************
  循环删除多个表中的主外键关联数据 
  要求:外键关键字段要一致
  @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~~

0 0
原创粉丝点击