0

我正在尝试从表中选择 max: value 并将值插入到同一个表中。

代码是:

CREATE PROCEDURE [dbo].[InsertLogin]
    @LOG_ID INT OUTPUT,
    @LOG_NAME VARCHAR(100),
    @LOG_EMAIL VARCHAR(100)
AS
    INSERT INTO login(LOG_NAME, LOG_EMAIL) 
    VALUES(@LOG_NAME, @LOG_EMAIL)

    SET @LOG_ID = @@IDENTITY

其他值正在插入,除了 LOG_ID 它变得空。

4

1 回答 1

1

我的猜测是您的登录表中的 Log_Id 列未设置为身份。

通过 T-SQL,您必须删除并读取列:

alter table login
drop column log_id

alter table login
alter column log_id int not null Identity(1,1)

或者,您可以在 SSMS 中轻松完成此操作。这是一篇关于这个主题的不错的文章:

http://blog.sqlauthority.com/2009/05/03/sql-server-add-or-remove-identity-property-on-column/

我也建议使用SCOPE_IDENTITY()over@@Identity

于 2013-02-24T14:44:51.547 回答