CREATE PROCEDURE NewsAdd
@Title NVarChar (100),
@SubTitle NVarChar (100),
@NewsID Int OUTPUT
AS
insert news(Title,SubTitle)
values(@Title,@SubTitle)
select @NewsID=@@IDENTITY
GO
@Title NVarChar (100),
@SubTitle NVarChar (100),
@NewsID Int OUTPUT
AS
insert news(Title,SubTitle)
values(@Title,@SubTitle)
select @NewsID=@@IDENTITY
GO
EXEC NewsAdd 'DDD','KKK',@I OUTPUT
SELECT @I这样就可以了
再多问一句就给分:
目前我这个表NewsID是设为主键的.
如果它不是主键,那select @NewsID=@@IDENTITY是不是就无效了呢?
如果是,那应该换成什么方法来返回@NewsID呢?
我的意思是,假如NewsID是自动编号的,但它不是主键,用select @NewsID=@@IDENTITY还行吗?
主要是想问这个@@IDENTITY是什么意思.
呵呵.
如果不是主键,有时会产生重复的ID,这个原因我也不知道,可能微软也解释不清楚。
如果不是主键,select @NewsID=@@IDENTITY也是有效的。
一般自增长字段设成主键或者唯一索引是好办法,保证数据的唯一性。