SORU
29 NİSAN 2009, ÇARŞAMBA


Sp_executesql bir değişken haline neden olsun?

Yürütmek gerek dinamik SQL bir parça var, ben daha sonra bir değişken sonucu depolamak gerekiyor.

sp_executesql kullanabilirim biliyorum ama net örnekler etrafında bunun nasıl yapılacağı hakkında bulamıyor.

CEVAP
29 NİSAN 2009, ÇARŞAMBA


Eğer ÇIKIŞ parametreleri varsa yapabilirsiniz

DECLARE @retval int   
DECLARE @sSQL nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);

DECLARE @tablename nvarchar(50)  
SELECT @tablename = N'products'  

SELECT @sSQL = N'SELECT @retvalOUT = MAX(ID) FROM '   @tablename;  
SET @ParmDefinition = N'@retvalOUT int OUTPUT';

EXEC sp_executesql @sSQL, @ParmDefinition, @retvalOUT=@retval OUTPUT;

SELECT @retval;

Ama eğer sen istemezsen, SP değiştirebilirsiniz:

-- Assuming that your SP return 1 value
create table #temptable (ID int null)
insert into #temptable exec mysp 'Value1', 'Value2'
select * from #temptable

Güzel değil, ama çalışıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • InfoPuppet

    InfoPuppet

    15 Kasım 2011
  • Randall P Studios

    Randall P St

    27 AĞUSTOS 2009