Avatar billede dotnewbi Juniormester
20. november 2008 - 14:00 Der er 3 kommentarer og
1 løsning

Stored procedure

Hej Eksperter,

Jeg har et spørgsmål vedr. stored procedures. I "gamle dage" hvor man lavede sql kald direkte i koden der kunne man jo opbygge sit sql kald hvis f.eks man havde en avancered søge funktion hvis et felt var udfyldt f.eks "oprettet får data"  skulle det med tages i sql stringen som et parameter der skulle tjekkes. Eller man kunne indsætte en '*' som ville retuner alle. Med det første er så vidt jeg ved ikke muligt når man bruger stored procedures, men hvad med * kan man det med stored procedures eller noget lingende. jeg har prøvet med * men har ikke kunnet få det til at virke, så hvis der er nogle der hved hvordan man kan gøre det, for ellers skal jeg jo oprette vildt mange stored procedures hvis der er bare 5 parameter der skal varier mellem om de skal tjekkes eller ej.
Avatar billede keysersoze Guru
20. november 2008 - 14:11 #1
Jeg kan ikke så godt lide at du skriver "i gamle dage" - efter min mening skal stored procedures benyttes til avanceret logik og ikke simple select-metoder. Det er rigtigt at man visse steder tidligere har fjernet så godt som al SQL fra koden og flyttet det ind i SP bla fordi man mente de var hurtigere end "almindelige" kald - men faktum er, at det langt fra altid er sandt. Ydermere er * også sjældent (= aldrig) god at benytte da det performer dårligere end en liste af alle kolonner.

Det var lidt religion - bortset fra det forstår jeg vist ikke samtlige dine problem-stillinger, kan du evt komme med nogle eksempler?
Avatar billede kalp Novice
20. november 2008 - 14:25 #2
Du kan da lave alt det du lige nævnte med stored procedures.
Du kan tjekke på parametre du sender ind til din stored procedure med kode lignende syntax.

Google efter T-SQL
Avatar billede dotnewbi Juniormester
20. november 2008 - 14:47 #3
Det er T-SQL som er løsningen tak for det :)
Avatar billede kalp Novice
20. november 2008 - 15:09 #4
En idé:


declare @query nvarchar(500)
declare @parametrer nvarchar(100)
declare @betingelse nvarchar(100)

set @betingelse = 'enEllerAndenVaerdi'

set @query = 'select * from Tabel '

if @betingelse is not null
set @query = @query + 'where kolonne = @xbetingelse'

SELECT @parametrer = '@xbetingelse nvarchar(100)'

EXEC sp_executesql @query, @parametrer, @betingelse

****************

Jeg har f.eks lavet en betingelse, men man kan lave uendeligt af dem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester