» »

MsSQL

MsSQL

boozzyy ::

Koko lahko v MSSQL-u definiramo stolpec kot spremenljivko. Naprimer: ce v stored procedure zelimo select-ati vrednost iz stolpca, ki ga podamo kot vhodno spremenljivko. Nekaj podobnega sledecemu:
SELECT @stolpec FROM Osebe WHERE ID=500
Kaj bi moral napisati nameso @stolpec

Hvala

frudi ::

uporabiti moraš dinamični sql...

deklariraš spremenljivko tipa nvarchar(4000) - 4000 je maksimalna velikost za ta podatkovni tip. ta spremenljivka bo tvoj sql stavek! ta ukaz nato izvršiš z ukazom EXEC oz. EXECUTE ali z vgrajeno proceduro sp_executesql. najenostavneje bi šlo nekako takole:

DECLARE @SqlCommand NVARCHAR(4000)
SET @SqlCommand = 'SELECT ' + @stolpec + ' FROM Osebe WHERE ID = 500'
EXEC(@SqlCommand) ali EXEC sp_executesql @SqlCommand

boljše je uporabljati sp_executesql, ker lahko tudi sprejema in vrača parametre in načeloma lahko deluje hitreje.
če je ime stolpca slučajno parameter, ki ga vnašajo kaki uporabniki, pa sploh raje premisli o ne-uporabi dinamičnega sql-a... kak zlonamernež zna enostavno izkoristiti takšno dinamično generiranje sql ukazov.
1ACDoHVj3wn7N4EMpGVU4YGLR9HTfkNhTd... in case I've written something useful :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

SQL problem

Oddelek: Programiranje
141699 (1317) win64
»

[C#,SQL]

Oddelek: Programiranje
51252 (1165) JanOlMajti
»

[Visual C#] TableAdapter

Oddelek: Programiranje
61144 (1020) detroit
»

Statistika dijakov, pomoc

Oddelek: Programiranje
211790 (1274) Mitja Bonča
»

[C#] Query in code

Oddelek: Programiranje
261827 (1571) iggy1

Več podobnih tem