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;