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

xiaoxiao2021-02-28  95

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 
转载请注明原文地址: https://www.6miu.com/read-64071.html

最新回复(0)