Kako proslijediti ime kolone kao parametar?

Latest post 01-04-2010 12:06 by Milos Radivojevic. 1 replies.
  • 12-03-2009 13:16

    Kako proslijediti ime kolone kao parametar?

    Dakle problem je sljedeci, treba mi stored procedura koja kao parametre ima

    1) ime kolone u odredjenoj tabeli

    2) vrijednost polja u toj koloni koja je proslijedjena kao parametar.

    Pokusao sam otprilike nesto ovakvo:

     

    CREATE PROCEDURE UpitSaParametrom @ImeKolone varchar(12),
                                                                        @VrijednostPolja nvarchar(20)
    AS
    SELECT *
    FROM Projects
    WHERE @ImeKolone = @VrijednostPolja

     

    i nista. Onda sam probao da napravim view koji poziva sp_column, nesto slicno ovome:

    CREATE VIEW ProjectsKolone
    AS
    EXEC sp_columns @table_name='Projects'

    pa da onda iz tog viewa trazim ime kolone za parametar ali opet nista.

     

    Help?

     

     

    • Post Points: 29
  • 01-04-2010 12:06 In reply to

    Re: Kako proslijediti ime kolone kao parametar?

    Takav stepen fleksibilnosti (kada je nepoznato ime tabele) zahteva upotrebu dinamickog SQL-a. Evo resenja za SP baziranog na dynamic sql-u:

    CREATE PROCEDURE dbo.UpitSaParametrom
    @ImeKolone varchar(12), @VrijednostPolja nvarchar(20)
    AS
    BEGIN
    	SET NOCOUNT ON;
    	DECLARE @sql AS nvarchar(max)
    		SET @sql = 'SELECT * FROM Projects '
    		SET @sql = @sql + ' WHERE ' + @ImeKolone + '=N''' + @VrijednostPolja + ''''
    
    		EXECUTE sp_executesql @sql, 
    						N'@ImeKolone varchar(12),@VrijednostPolja nvarchar(20)',
    						@ImeKolone ,@VrijednostPolja
    END
    

     

    Pozdrav, Milos

    • Post Points: 7
Page 1 of 1 (2 items) | RSS
Powered by Community Server (Commercial Edition), by Telligent Systems