首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

delete触发器出错了解决方法

2012-04-11 
delete触发器出错了------------这是我的两个表Create Table Student(--学生表StudentID int primary key,

delete触发器出错了
------------这是我的两个表
  Create Table Student( --学生表
  StudentID int primary key, --学号
  StydenName varchar(20) not null, --姓名
  )

  Create Table BorrowRecord( --学生借书记录表
  BorrowRecord int identity(1,1), --流水号  
  StudentID int , --学号
  BorrowDate datetime, --借出时间
  ReturnDAte Datetime, --归还时间
  )
----------这是我的测试数据
insert into Student values(1,'张三')
insert into Student values(2,'李四')
insert into Student values(3,'汪涵')
insert into BorrowRecord values(1,'2012-12-12','2012-12-12')
insert into BorrowRecord values(2,'2012-12-12','2012-12-12')
-------------这是触发器
Create trigger trdStudent 
On Student 
for Delete 
As 
Delete BorrowRecord 
From BorrowRecord br , Delted d 
Where br.StudentID=d.StudentID 

go
----这是我的操作
delete from Student where StudentID = 1 
--错误信息
消息 208,级别 16,状态 1,过程 trdStudent,第 5 行
对象名 'Delted' 无效。

[解决办法]
改成deleted 就行了
[解决办法]
Create trigger trdStudent 
On Student 
for Delete 
As 
Delete BorrowRecord 
From BorrowRecord br , deleted d 
Where br.StudentID=d.StudentID 

go

注意红色部分
[解决办法]
1.旧记录的系统表叫做:deleted
2.你的删除命令本身也存在问题:你不能假设总是至删除一条记录
3.修改如下:

SQL code
Delete FROM BorrowRecord  Where StudentId IN (SELECT StudentId FROM DELETED); 

热点排行