2012-06-06 11 views
10

tengo dos parámetrosEstablecer valor de parámetro de consulta de selección

DECLARE @nOdc_Id VARCHAR(50) 
DECLARE @nProject_Id VARCHAR(50) 

Y una consulta de selección

Select nOdc_Id ,nProject_Id From ProjectTable Where ProjectId='53' 

Ahora quiero establecer el valor del parámetro como

Set @=nOdc_Id =nOdc_Id 
And @nProject_Id =nProject_Id 

favor cualquiera ayuda cómo puedo implementar esto en StoredProcedure.

Respuesta

13
Select @nOdc_Id = nOdc_Id, 
     @nProject_Id = nProject_Id 
From ProjectTable 
Where ProjectId = 53 
4

Puede hacer de esta manera. Hay más enfoques.

SET @nOdc_Id = (select nOdc_Id From ProjectTable Where ProjectId='53'); 
SET @nProject_Id = (select nProject_Id From ProjectTable Where ProjectId='53'); 
+1

Este enfoque se recomienda en las publicaciones de Microsoft. En caso de que la instrucción SELECT dentro de los corchetes inesperadamente devuelva más de una fila, se generaría un error, que es lo que se desea. Si se utilizara SELECT @ nOdc_Id = nOdc_ID FROM ProjectTable, no se produciría ningún error en el caso de que se devolviera más de una fila, simplemente terminaría con datos incorrectos sin saberlo. –

+0

@ Ivan__83 así que uso solo este enfoque (o lo usé cuando trabajé con T-SQL). – Sajmon

+0

No sé cómo se maneja esta situación en otros RDBMS. Pero este enfoque es preferido en TSQL. –

1

así:

DECLARE @nOdc_Id VARCHAR(50) 
DECLARE @nProject_Id VARCHAR(50) 

Select @nOdc_Id = nOdc_Id From ProjectTable Where ProjectId='53' 
select @nProject_Id = nProject_Id From ProjectTable Where ProjectId='53' 
Cuestiones relacionadas