create trigger ddd instead of
解决方案 »
- select 查询时,不能动产生流水ID。
- 关于模糊查询和左连接的问题
- 同一个用户同时操作同一个存储过程,这样会有问题吗?
- 能否给一个这样的存贮过程的例子?
- 请教一个类型转换的问题
- 刚学sql,一个很简单的问题
- 将varchar改成nvarchar后,使用带编辑器的新闻发布系统,出现乱码拉
- 我的服务器装了win2000和sql server 2000,怎样避免服务器不能启动或数据库出问题,数据是很重要的
- WE8ISO8859P1和WE8ISO8859P1区别,是否支持双字节查询?
- 怎样在SQL7中的text中加入大段的文本?
- 怎样用语句实现增加字段的默认值?
- 去一个表所有字段名称的SQL,怎么写
1 如何锁一个表的某一行
A 连接中执行SET TRANSACTION ISOLATION LEVEL REPEATABLE READbegin transelect * from tablename with (rowlock) where id=3waitfor delay '00:00:05'commit tranB连接中如果执行update tablename set colname='10' where id=3 --则要等待5秒update tablename set colname='10' where id<>3 --可立即执行2 锁定数据库的一个表SELECT * FROM table WITH (HOLDLOCK)
注意: 锁定数据库的一个表的区别SELECT * FROM table WITH (HOLDLOCK)
其他事务可以读取表,但不能更新删除SELECT * FROM table WITH (TABLOCKX)
ON tablename
INSTEAD OF update, delete
AS
BEGIN
if exists(select 1 from deleted where 入库时间 is not null)
RAISERROR (...)
else
update ...(or delete...)
END
on 表
for update
as
if exists(select * from inserted where 入库时间 is not null)
begin
raiserror ('修改的记录中有已入库的记录,操作失败!',16,1)
rollback tran
end
go
可以看联机丛书INSTEAD OF
多看帮助