打错了,是: use mydb go create procedure kk @num char(20) as alter trigger t1_insert on t1 for insert as update t1 set t1.name=@num from t1 inner join inserted i on t1.name=i.name go
我不知道 update t1 set t1.name=@num from t1 inner join inserted i on t1.name=i.name 和 update t1 set t1.name=@num 有什么区别
我只是想改变新插入记录的name字段值,而update t1 set t1.name=@num 会改变了所有记录的。而且我问的是为什么每次都提示要定义@num.但是 @num已经在一开头就定义了阿!!!
建表:create table t1 (name varchar(20)) 建触发器: create trigger t1_insert on t1 for insert as update t1 set t1.name='ab' where t1.name in (select i.name from inserted i) 建存储过程 create proc kk @num char(20) as declare @sql varchar(100) set @sql='alter trigger t1_insert on t1 for insert as update t1 set t1.name='+quotename(@num,'''')+' where t1.name in (select i.name from inserted i)' exec @sql
use mydb
go
create procedure kk
@num char(20)
as
alter trigger t1_insert
on t1
for insert
as
update t1 set t1.name=@num
from t1 inner join inserted i
on t1.name=i.name
go
update t1 set t1.name=@num
from t1 inner join inserted i
on t1.name=i.name
和
update t1 set t1.name=@num
有什么区别
会改变了所有记录的。而且我问的是为什么每次都提示要定义@num.但是
@num已经在一开头就定义了阿!!!
建触发器: create trigger t1_insert on t1 for insert
as
update t1 set t1.name='ab' where t1.name in (select i.name from inserted i)
建存储过程
create proc kk @num char(20)
as
declare @sql varchar(100)
set @sql='alter trigger t1_insert on t1 for insert as
update t1 set t1.name='+quotename(@num,'''')+' where t1.name in (select i.name from inserted i)'
exec @sql