如何禁止删除某个记录?
2008-03-20 15:17
183 查看
如何禁止删除某个记录?
表IS_Admin(关键字AdminID)
禁止删除AdminID='xt'的记录
create Trigger tr_delete_tab
on IS_Admin
for delete
as
set nocount on
if exists(select 1 from deleted where AdminID='xt')
begin
RAISERROR ('不能删除AdminID=xt的记录', 16, 1)
ROLLBACK TRANSACTION
end
go
获取数据库中的触发器
在SQL SERVER的每个数据库中含有一个名为sysobjects的系统表,这个系统表中存储了当前数据库中所有对象(包括表对象、用户表、约束、默认值、日志和存储过程)的信息,可利用这个系统表来解决此问题。
select * from sysobjects where xtype='TR'
获取数据库中的存储过程
select * from sysobjects where xtype='p'
其他:
C=CHECH约束
D=默认值或DEFAULT约束
F=FOREIGN KEY约束
L=日志
FN=标量函数
IF=内嵌表函数
P=存储过程
PK=PRIMARY KEY约束(类型是K)
RF=复制筛选存储过程
S=系统表
TF=表函数
TR=触发器
U=用户表
UQ=UNIQUE约束(类型是K)
V=视图
X=扩展存储过程
表IS_Admin(关键字AdminID)
禁止删除AdminID='xt'的记录
create Trigger tr_delete_tab
on IS_Admin
for delete
as
set nocount on
if exists(select 1 from deleted where AdminID='xt')
begin
RAISERROR ('不能删除AdminID=xt的记录', 16, 1)
ROLLBACK TRANSACTION
end
go
获取数据库中的触发器
在SQL SERVER的每个数据库中含有一个名为sysobjects的系统表,这个系统表中存储了当前数据库中所有对象(包括表对象、用户表、约束、默认值、日志和存储过程)的信息,可利用这个系统表来解决此问题。
select * from sysobjects where xtype='TR'
获取数据库中的存储过程
select * from sysobjects where xtype='p'
其他:
C=CHECH约束
D=默认值或DEFAULT约束
F=FOREIGN KEY约束
L=日志
FN=标量函数
IF=内嵌表函数
P=存储过程
PK=PRIMARY KEY约束(类型是K)
RF=复制筛选存储过程
S=系统表
TF=表函数
TR=触发器
U=用户表
UQ=UNIQUE约束(类型是K)
V=视图
X=扩展存储过程
相关文章推荐
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- 【如何恢复微信已删除的聊天记录?】
- 在Oracle中如何利用Rowid查找和删除表中的重复记录(转)
- SQL SERVER 如何删除重复记录
- 如何用服务器文件管理系统记录共享文件的访问日志、记录共享文件复制、修改、删除和剪切等操作?
- MYSQL删除表的记录后如何使ID从1开始
- 在Oracle中如何利用Rowid查找和删除表中的重复记录
- 如何恢复误删除了含有自动编号字段的记录
- MySql-如何查询删除数据表重复记录
- Code33 如何删除这些重复的行(不同时删除重复的记录)
- 如何删除一张表重复的记录?
- MYSQL删除表的记录后如何使ID从1开始
- 如何删除source insight中打开工程的历史记录
- C#中如何解决sqlite数据表/记录删除后数据库内存不变的问题
- Python DataFrame 问题记录:如何删除原来的索引,重新建立索引 reset_index
- 如何用JS删除checkbox选中的记录
- MYSQL删除表的记录后如何使ID从1开始
- mysql删除记录后,添加记录调过删除id.如何重新排序.
- 如何用git reflog和git cherry-pick找回已删除的commit记录
- 如何删除表中的重复记录只保留其中一条