0

テーブルから max: 値を選択し、値を同じテーブルに挿入しようとしています。

コードは次のとおりです。

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 が null になることを除いて挿入されます。

4

1 に答える 1

1

私の推測では、Login テーブルの Log_Id 列が 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()を使用することもお勧めします@@Identity

于 2013-02-24T14:44:51.547 に答える