none
stored procedure içinde dinamik parametre RRS feed

  • Soru

  • Merhaba Arkadaşlar,

    Çözemediğim bir sorunum var. Basit bir stored procedure oluşturdum. stored procudure için tek bir parametre tanımladım ve bu parametre bir dizi ,bir tablo gibi birden çok değeri tutsun istiyorum. Amacım kişi web formdan örneğin 10 checkboxtan 7 checkboxı işaretlediğinde burdan el ettiğim 7 tane  id değerini stored procedurde tanımladığım tek bir parametreye  gönderip bu parametreyi select sorgumda kullanıp buna uyan kayıtları seçmek ve raporumda göstermek istiyorum. Bunu sql serverde stored procedure içinde nasıl yaparım bilmiyorum, umarım anlatabilmişimdir derdimi. aşağıda basitçe göstermeye çalıştım. Şimdiden teşekür ediyorum.

    create

    procedure deneme (@paramter int)

    as

    begin

    SELECT

    tgiyim.giyim as giyim ,tverilecekgiyimyedek.giyimid as giyimid, tverilecekgiyimyedek.beden FROM tverilecekgiyimyedek INNER JOIN

    tgiyim

    ON tverilecekgiyimyedek.giyimid = tgiyim.giyimid INNER JOIN

    tpersonel

    ON tverilecekgiyimyedek.personelid = tpersonel.personelid

    inner join tpozisyon on

    tpersonel

    .pozisyonid=tpozisyon.pozisyonid

    where

    -- tpozisyon.pozisyonid in @parameter

    --veya

    -- tpozisyon.pozisyonid=@parameter

    end



    10 Ağustos 2012 Cuma 23:12

Yanıtlar

  • create procedure deneme (@parameter varchar(1000))
    as
    begin
    declare @sql varchar(4000)
    set @sql='SELECT
    tgiyim.giyim as giyim ,tverilecekgiyimyedek.giyimid as giyimid, tverilecekgiyimyedek.beden FROM tverilecekgiyimyedek INNER JOIN
    tgiyim
    ON tverilecekgiyimyedek.giyimid = tgiyim.giyimid INNER JOIN
    tpersonel
    ON tverilecekgiyimyedek.personelid = tpersonel.personelid
    inner join tpozisyon on tpersonel.pozisyonid=tpozisyon.pozisyonid
    where tpozisyon.pozisyonid in (' + @parameter + ')'
    execute(@sql)
    end
    
    exec dbo.deneme '3,2'
    

    @parameter 'ye id'ler virgülle eklenerek string olarak gönderilebilir

    11 Ağustos 2012 Cumartesi 10:07

Tüm Yanıtlar

  • create procedure deneme (@parameter varchar(1000))
    as
    begin
    declare @sql varchar(4000)
    set @sql='SELECT
    tgiyim.giyim as giyim ,tverilecekgiyimyedek.giyimid as giyimid, tverilecekgiyimyedek.beden FROM tverilecekgiyimyedek INNER JOIN
    tgiyim
    ON tverilecekgiyimyedek.giyimid = tgiyim.giyimid INNER JOIN
    tpersonel
    ON tverilecekgiyimyedek.personelid = tpersonel.personelid
    inner join tpozisyon on tpersonel.pozisyonid=tpozisyon.pozisyonid
    where tpozisyon.pozisyonid in (' + @parameter + ')'
    execute(@sql)
    end
    
    exec dbo.deneme '3,2'
    

    @parameter 'ye id'ler virgülle eklenerek string olarak gönderilebilir

    11 Ağustos 2012 Cumartesi 10:07
  • Çok teşekkür ediyorum mbaykan,

    Sorunu hallettim sayenizde.

    11 Ağustos 2012 Cumartesi 10:51