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 | 1843 (1461) | win64 |
| » | [C#,SQL]Oddelek: Programiranje | 1384 (1297) | JanOlMajti |
| » | [Visual C#] TableAdapterOddelek: Programiranje | 1289 (1165) | detroit |
| » | Statistika dijakov, pomocOddelek: Programiranje | 1974 (1458) | Mitja Bonča |
| » | [C#] Query in codeOddelek: Programiranje | 1930 (1674) | iggy1 |