发新话题
打印

关于SQLserver 2000问题

关于SQLserver 2000问题

有个问题需要大家帮助解决一下,就是一个数据库里面两张表其中SID 合cno有关联,当删除SID表中一条的数据时cno表中相应的数据也会删除,请问这个语句应该怎么写啊?

TOP

什么是CNO啊?不懂!

TOP

一个列名吧。写个触发器就可以了。




DELETE触发器的工作过程

  当触发DELETE触发器后,从受影响的表中删除的行将被放置到一个特殊的deleted表中。deleted表是一个逻辑表,它保留已被删除数据行的一个副本。deleted表还允许引用由初始化DELETE语句产生的日志数据。

  使用DELETE触发器时,需要考虑以下的事项和原则:

  ?当某行被添加到deleted表中时,它就不再存在于数据库表中;因此,deleted表和数据库表没有相同的行。

  ?创建deleted表时,空间是从内存中分配的。deleted表总是被存储在高速缓存中。

  ?为DELETE动作定义的触发器并不执行TRUNCATE TABLE语句,原因在于日志不记录TRUNCATE TABLE语句。

  示例

  在本例中,将创建一个触发器,无论何时删除一个产品类别(即从Categories表中删除一条记录),该触发器都会更新Products表中的Discontinued列。所有受影响的产品都标记为1,标示不再使用这些产品了。

USE Northwind
CREATE TRIGGER Category_Delete
ON Categories
FOR DELETE
AS
UPDATE P SET Discontinued = 1
FROM Products AS P INNER JOIN deleted AS d
ON P.CategoryID = d.CategoryID
本帖最近评分记录
  • 冰雪寒 无忧币 +6 奖励精彩回复 2006-11-3 09:47

TOP

‹‹ 上一帖:SQL Server2005同步问题   |   下一帖:英文SQL SERVER 2000上面可以创建中文的DB么? ... ››
发新话题
最近访问的版块