I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
EXEC er begrænset til ikke at kunne bruge variable defineret "ude fra".
dynamisk sql er i øvrigt noget skidt især i en stored procedure. Det bedste er at generere den dynamiske sql i klienten og sende den til databasen som en TextCommand.
Jow man kan.. jeg har i mellem tiden fundet løsningen.
Se følgende eksempel, som jeg har fundet på nettet. Det er specielt detaljen med "Exec sp_executesql":
declare @roll_up_flag int --variable to hold flag declare @caseroom_db varchar(30) declare @sqlcmd nvarchar(500) select @caseroom_db='caseroom2_test'
select @sqlcmd='select @roll_up_flag=cast(thevalue as int) from ' + @caseroom_db + '.webuser.list_variables where thelabel=''AOCostRollupFlag''' exec sp_executesql @sqlcmd,N'@roll_up_flag int output', @roll_up_flag output
joeh - men ret beset er det jo så ikke EXEC(sql statement) men EXEC STOREDPROC du bruger (lidt flueknepperi, I know :-)). Ved at kalde sp_executesql explicit,gør du bare hvad sql serveren selv gør, når den modtager en select statement.
Uanset det kan lade sig gøre med sp_executesql, rokker det dog ikke ved, at det er upraktisk at kode dynamisk sql på serveren. Men på den anden side - der er jo nogle gange, hvor det er den eneste mulighed.
held og lykke med det
Synes godt om
Ny brugerNybegynder
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.