2013-02-24 31 views
0

我試圖選擇最高:從表中的值,並插入值插入相同的表。存儲過程中選擇最大值,並插入

的代碼是:

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其越來越無效插入。

+0

表'login'有'IDENTITY'的屬性是什麼柱? – 2013-02-24 14:38:39

+0

我認爲這是問題,我該怎麼設置? – Rakesh 2013-02-24 14:41:48

+0

好的,你想要設置什麼列作爲自動遞增值?你有一個'ID'唯一標識行? – 2013-02-24 14:42:42

回答

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()@@Identity