2013-02-24 7 views
0

J'essaie de sélectionner max: valeur dans une table et d'insérer la valeur dans la même table.Procédure stockée sélectionnez la valeur max et insérez

Le code est:

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 

Les autres valeurs insèrent sauf LOG_ID son obtenir nulle.

+0

quelle colonne dans le tableau 'login' qui a une propriété de' IDENTITY'? –

+0

Je pense que c'était le problème comment puis-je définir cela. – Rakesh

+0

ok, quelle colonne voulez-vous définir comme valeur d'incrémentation automatique? avez-vous un 'ID' l'unique identifie la ligne? –

Répondre

1

Ma conjecture est votre colonne Log_Id dans votre table de connexion n'est pas configuré pour être une identité.

Grâce à T-SQL, vous devez déposer et readd la colonne:

alter table login 
drop column log_id 

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

Sinon, vous pouvez le faire assez facilement dans SSMS. Voici un article décent sur le sujet:

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

Je vous recommande également d'utiliser SCOPE_IDENTITY() sur @@Identity

Questions connexes