insert into [MKT].[dbo].[CampaignCouponRecord] values
(12,'baoj2010000',1,getdate(),'system',getdate(),'system',111,'insert','20140214') output inserted.ID
上面语句执行出错
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near 'output'.
1楼和3楼说的极是,
1. insert语句之后 后跟select @@identity
2. 第二种,就是和3楼一样
这两种什么区别?
@baoj2010: 第一种是最早出现的方式,用起来,没有第二种方便,第一种方式插入之后,还得重新查询,第二种就不需要了!具体内部如何实现的,就不清楚了,如果想对sqlserver深入的话,可以看看<<Microsoft SQL Server 2005技术内幕>>
@@IDENTITY
返回最后一个标识值
返回最后一个标示,如果返回前又有人插入数据那返回不就错了吗
写个存储过程
都别闹``
insert into [MKT].[dbo].[CampaignCouponRecord] output inserted.ID values
(12,'baoj2010000',1,getdate(),'system',getdate(),'system',111,'insert','20140214')
output要在values之前```在into之后
USE tempdb; IF OBJECT_ID('dbo.Orders','U') IS NOT NULL DROP TABLE dbo.Orders CREATE TABLE dbo.Orders ( orderid INT NOT NULL, orderdate DATE NOT NULL, empid INT NOT NULL, custid VARCHAR(5) NOT NULL, qty INT NOT NULL, CONSTRAINT PK_Orders PRIMARY KEY(orderid) ); INSERT INTO dbo.Orders(orderid,orderdate,empid,custid,qty) OUTPUT inserted.orderid VALUES (30001,'20070802',3,'A',10)
insert into table
select @@identity