我试图从表中选择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之外,其他值正在插入,它变为空。
答案 0 :(得分:1)
我的猜测是您的Login表中的Log_Id列未设置为Identity。
通过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