您的位置:首页 > 数据库

数据库删除数据时判断数据是否被其他数据表使用1

2017-07-11 14:28 330 查看
USE [DB_www]

GO

/****** Object:  StoredProcedure [dbo].[CheckDeleteFieldValue]    ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

ALTER PROC [dbo].[CheckDeleteFieldValue] @TableName VARCHAR(50), @FieldName VARCHAR(50),@FieldValue VARCHAR(500)

AS

BEGIN
DECLARE @SQL NVARCHAR(2000),@Used INT
Declare @Name  nvarchar(100)
SET @Used=0
Declare Cur Cursor For
SELECT ob.name FROM SYS.columns cl ,sys.objects ob WHERE cl.name=@FieldName AND cl.object_id=ob.object_id
AND ob.type='U' AND ob.name<>@TableName
Open Cur
Fetch NEXT From Cur Into @Name
While @@fetch_status=0
BEGIN
SET @SQL=' Select @Used = Count('+@FieldName +') from '+@Name +' Where '+@FieldName +'='+ ''''+@FieldValue+''''
exec sp_executesql @sql,N'@Used int out',@Used out
if @Used>0
break
Fetch Next From Cur Into @Name
END
IF @Used=0
  SELECT '' AS USE_TABLE 
ELSE 
  SELECT @Name AS USE_TABLE
 
CLOSE Cur
DEALLOCATE Cur

END 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐