如果有两条insert 语句,,,一条插入里有自增字段的值,一条没有自增字段的值
请问我该如何让自增字段适应这两条语句?需要建立触发器吗?如果需要,该如何写触发哭?
谢谢各位兄台~~~
请问我该如何让自增字段适应这两条语句?需要建立触发器吗?如果需要,该如何写触发哭?
谢谢各位兄台~~~
解决方案 »
- 这样比较数据的SQL语句如何写?
- sql自增函数写法及取值
- 剖析SQLSERVER2005的页面结构--行类型篇一
- 我是新加入用户
- 提问,关于得到sql自增字段内容问题.在线等....马上结!
- 如何存储图片
- 仍有对服务器的远程登录或链接登录,如何解决
- 在线求助 统计汇总sql语句的优化
- 我怎么设置,使2个服务器上的2个现在相同的数据库,在以后当一个服务器更改以后另一个也会更改
- 我想用visual foxpro 编一个图书管理程序,可是我才学了一个月,不知道应该怎么样入手,基本的想法已经有了~~~~那位高手可以帮一下~~谢谢
- 100分,求数据库连接的问题
- 请问关于asp启动SQLServer的问题
GO
Insert TEST(Name) Select 'A'SET IDENTITY_INSERT TEST ON
Insert TEST(ID, Name) Select 2, 'B'
SET IDENTITY_INSERT TEST OFFSelect * From TEST
GO
Drop Table TEST
--Result
/*
ID Name
1 A
2 B
*/
执行有自增值的sql
SET IDENTITY_INSERT 表 off
执行没有自增值的sql
我现在想寻求帮助,,,能不能用trigger搞定?
GO
Insert TEST(Name) Select 'A'CREATE TRIGGER ttt ON tes
INSTEAD OF INSERT
AS
declare
@i int,
@j varchar(10)
begin
select @i=id,@j=name from inserted
if @i=0
begin
insert into tes(name) values(@j)
end
end
go-----------
我这里只写了if
else你自己写,把鱼鱼MM的 SET IDENTITY_INSERT TEST ON 加到else就可以了
INSTEAD OF INSERT
AS
declare
@i int,
@j varchar(10)
begin
select @i=id,@j=name from inserted
if @i=0
begin
insert into tes(name) values(@j)
end
else
begin
SET IDENTITY_INSERT TES ON
Insert TES(ID, Name) values(@i,@j)
SET IDENTITY_INSERT TES OFF
endend
----
insert into tes(name) values('a')insert into tes(id,name) values(2,'a')
foryahuu(哑猢) ,能否讲一INSTEAD OF INSERT 的作用?
sql2000的,INSTEAD OF INSERT 就是在你插入数据之前触发,一般的insert触发是插入数据之后触发你看,我都在自增列里加了一个重复的了1 a
2 a
3 a
4 a
5 a
5 a
但我觉得你这条select @i=id,@j=name from inserted
有点为明白,,,,变量@j是如何得得到的?
当 IDENTITY_INSERT 设置为 OFF 时 shgjkfdhgjk
当 IDENTITY_INSERT 设置为 ON 时 gfdhjghsdkg
我刚才是分开插入的,太2了