Forum » Programiranje » 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
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.
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQL problemOddelek: Programiranje | 1685 (1303) | win64 |
» | [C#,SQL]Oddelek: Programiranje | 1237 (1150) | JanOlMajti |
» | [Visual C#] TableAdapterOddelek: Programiranje | 1131 (1007) | detroit |
» | Statistika dijakov, pomocOddelek: Programiranje | 1777 (1261) | Mitja Bonča |
» | [C#] Query in codeOddelek: Programiranje | 1817 (1561) | iggy1 |