CREATE TRIGGER Trg_Name
ON 表
FOR INSERT
UpDate 表 Set ID=(Select ID=Max(ID)+1 from 表) from inserted where
表.主键=Inserted.主键
GO
ON 表
FOR INSERT
UpDate 表 Set ID=(Select ID=Max(ID)+1 from 表) from inserted where
表.主键=Inserted.主键
GO
你将你的具体的步骤说一下,其实你可以直接
USE pubs
GO
SELECT c.*, o.*
FROM Northwind.dbo.Customers AS c INNER JOIN
OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders)
AS o
ON c.CustomerID = o.CustomerID
GO
CREATE TRIGGER Trg_table_insert
ON 表
instead of INSERT
as
set nocount on
declare @ID int
Select @ID=Max(ID)+1 from 表
insert 表 values(@ID,........)
Acess :source :id 自动编号,
SQL :destination:id int
我用下面的代码创建成功。
CREATE TRIGGER trg_aqgj_dm
ON dbo.aqgj_dm
FOR INSERT
UpDate dbo.aqgj_dm Set ID=(Select ID=Max(ID)+1 from dbo.aqgj_dm) from inserted where
dbo.aqgj_dm.id=Inserted.id
GO
但我在表中新增记录,id 并没有自动增加。
请问这是怎么回事。sdhdy:
我是菜鸟,你建的触发器在什么时候执行?
我执行下面的语句:
CREATE TRIGGER Trg_table_insert
ON dbo.aqgj_dm
instead of INSERT
as
set nocount on
declare @ID int
Select @ID=Max(ID)+1 from dbo.aqgj_dm
insert dbo.aqgj_dm values(@ID)
错误提示:
插入错误: 列名或所提供值的数目与表定义不匹配
。
我不知道怎么办,帮帮忙!
INSTEAD OF INSERT
AS
BEGIN
INSERT 表 SELECT isnull(max(id),0)+1,其他列 FROM inserted
END
Alter Table yourTableName Add id Int Identity(1,1)
1.在SQL数据库中分别建立有ID的表的复表(该表的结构与ID对应的表一样,只是ID为INT类型);
2.用数据管道将ACESS中的数据导入到SQL数据库中的复表.
3.利用语句:SET identity_insert off;
INSERT INTO 表 SELECT * FROM 复表; SET identity_insert on;
将数据导入.
4.将复表删除.