首 页 ASP ASP.NET PHP JSP Ajax DIV+CSS JavaScript XML C#
MySQL MSSQL Access Oracle Linux Server 电脑技巧 网络安全 建站经验 其它

实现删除主表数据时, 判断与之关联的外键表是否有数据引用,有标志,无则删除

整理日期:2008年04月03日 【字体:

  问题描述:

  某个基础信息表,与系统中30多个表存在外键关系,当删除基础数据时,需要判断是否已经被用过,如果用过则更改标志位,如果没有用过则直接删除,如何能很好实现这个处理?最好能够自动适应表的变化。

  问题解决(SQL Server 2005)

  -- SQL Server 2005的错误处理容易控制, 因此,SQL Server 2005中可以直接删除, 通过错误处理来确定是否需要更新.

-- 示例如下.
USE tempdb
GO

CREATE TABLE m(
  id int PRIMARY KEY,
  bz bit)
INSERT m SELECT 1, 0
UNION ALL SELECT 2, 0

CREATE TABLE c(
  id int primary key,
  a_id int references m(id)
    ON DELETE NO ACTION)
INSERT c SELECT 1, 1
GO

-- 删除处理存储过程
CREATE PROC dbo.p_delete
  @id int
AS
SET NOCOUNT ON
BEGIN TRY

伊图教程网[www.etoow.com]
http://www.etoow.com/html/2008-04/1207198376.html
BEGIN TRAN
Tags:
实现删除主表数据时, 判断与之关联的外键表是否有数据引用,有标志,无则删除
'http://www.etoow.com/html/2008-04/1207198376.html
1
 
2
信息搜索
  
联系我们关于本站广告服务设为首页 收藏本站友情链接网站地图
Copyright © Etoow.com Inc. All Rights Reserved