comment déclarer une variable au proc stocké

Je crée un proc stocké dans MS SQL Server 2008.

Ici, dans mon SP, après une instruction d'insertion, une valeur d'identité pour cette ligne insérée sera

généré. J'utilise cela dans un autre encart Statement.

@SID int insert into table1(SNAME) values('Sname') set @SID=SCOPE_IDENTITY() insert into table2(SID)values(@SID) 

ici, mon doute est, est-il nécessaire d'append @SID comme un parmètre dans le code C #.

comment déclarer une variable qui n'attend aucun paramètre? puisque c'est la valeur

du SP lui-même ..

S'il vous plaît aider

Changer le sql de

 @SID int 

à

 DECLARE @SID int 

Jetez un oeil à DECLARE @local_variable (Transact-SQL)

Les variables sont déclarées dans le corps d'un lot ou d'une procédure avec l'instruction DECLARE et sont affectées de valeurs à l'aide d'une instruction SET ou SELECT. Les variables de slider peuvent être déclarées avec cette instruction et utilisées avec d'autres instructions liées au slider. Après la déclaration, toutes les variables sont initialisées comme NULL, sauf si une valeur est fournie dans le cadre de la déclaration.

Déclaration de variable dans SQL Server

 Declare @SID int --Declaring variable in SQL Server insert into table1(SNAME) values('Sname') set @SID=SCOPE_IDENTITY() insert into table2(SID)values(@SID) 

mon doute est, est-il nécessaire d'append @SID dans le code C #

La question est: do you want this identity to be returned as an output parameter à votre class?

Si OUI alors vous devrez le passer comme paramètre de sortie. Comme

 @SID INT OUTPUT -- as stored procedure parameter 

Si NON, toutes les variables requirejses localement dans la procédure stockée seront déclarées localement. Vous avez seulement besoin de changer

 @SID int 

À

 DECLARE @SID int 
 CREATE PROCEDURE SPNAME @PARAM1 INT, @PARAM2 VARCHAR(10), . . AS BEGIN DECLARE @SID AS int insert into table1(SNAME) values('Sname') set @SID=SCOPE_IDENTITY() insert into table2(SID)values(@SID) END 

Pour Oracle et DB2, la variable de déclaration est,

 CREATE OR REPLACE PROCEDURE Proc1() IS Declare myName in varchar; STMT VARCHAR(4000); BEGIN Select fname into myName from student where fname='x'; // is returning unique value END;