触发器、约束、用户、计算机名不一致的处理
原创
©著作权归作者所有:来自51CTO博客作者libotao的原创作品,如需转载,请与作者联系,否则将追究法律责任
分为三种:insert、delete、update
insert触发器用到临时表:inserted存放的是新数据
delete触发器用到临时表:deleted存放的是旧数据
update触发器用到临时表:inserted、deleted
临时表--撤消rollback(回滚)、提交commit(硬盘默认)
1、创建触发器:
create trigger 触发器名称
on 表名 for 操作
as
begin
SQL语句
end
实例:禁止任何人向YG表中插入数据
create trigger tri01
on YG for insert
as
begin
if exists(select * from inserted)
begin
rollback
print '不允许插入新记录'
end
end
测试:
2、暂时关闭触发器
alter table YG disable trigger tri01
3、开启触发器
alter table YG enable trigger tri01
实例:禁止删除男同志记录
create trigger tri02
on YG for delete
as
begin
if exists(select * from deleted where 性别='男')
begin
rollback
print '禁止删除男同志记录'
end
end
作业:A、禁止更新YG表的数据
B、创建users表和count表
说明:当向users表中插入记录时,count表中的内容要跟着变化
create trigger tri00
on student for insert
as
begin
if exists(select * from inserted)
begin
update count set 人数=人数+1 where 性别 = (select users.性别 from inserted)
end
end
1、check保证记录取值的合法范围
例如:性别只能是男和女
右击表--修改--右击--check约束--添加--表达式--性别="男" or 性别="女"--表设计器:在创建或重新启动选'否'
2、unique确保记录的唯一性
右击表--修改--索引/键--常规--类型列是否唯一
实例:创建一个windows用户ngq对yuangong表只能读
xp_cmdshell 'net user ngq ngq /add'
1、创建SQL用户:
A、数据库--安全性--登录名--去勾:强制实施密码
B、dufei数据库下--安全性--用户
2、复制(同步)
server1 server2
DB1 发布/分发 订阅DB1
YG YG
出版社
cmd -- services.msc -- 重启SQL Server、SQL Server agent
注:一台机器上用别的机器服务:连接--数据库引擎
修改sa的密码:
安全性--登录名--sa --密码
server1中:
复制--本地发布--右击新建发布 --
server2
进程帐户:server1\administrator
server2中:
复制 -- 本地订阅 -- 右击新建订阅--进程帐户:server1\administrator
说明:三种复制方法:
A、快照:体积大、速度慢、单向
B、事务:体积小、速度快、单向
C、合并:双向复制
if serverproperty('servername')<>@@servername
begin
declare @server sysname
set @server=@@servername
exec sp_dropserver @server=@server
set @server=cast(serverproperty('servername') as sysname)
exec sp_addserver @server=@server,@local='local'
end
说明:select @@servername
上一篇:备份、恢复
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MySQL 主从 AUTO_INCREMENT 不一致问题分析
本文介绍了MySQL5.7 中常见的replace into 操作造成的主从auto_increment不一致现象,一旦触发了主从切换,业务的正常插入操作会触发主键冲突的报错提示。
MySQL典型案例 replace into auto_increment -
C++打开NC数据得到与真实值不一致结果的解决方法
本文介绍基于C++语言的netCDF库读取.nc格式的栅格文件时,代码读取到的数据与栅格文件的实际数据不一致的解决方法~
C++ netCDF NC数据 栅格文件 数据读取 -
NetBios 与计算机名不一致
NetBios 与计算机名不一致
职场 休闲 NetBios 与计算机名不一致 -
页面字符编码不一致的处理
有时候因为工作需要,会处理一些非开发人员处理的页面
工具 测试 工作 css 字符编码