Goed, ik hoop dat ik mijn topictitle duidelijk heb gemaakt.
Server is SQL 2000. Client is Windows 2000.
Ik wil een stored procedure maken, waarin ik een hele simpele INSERT INTO statement laat doen.
(Ik kan dit ook vanuit vbscript, maar dit schijnt veiliger te zijn.)
De stored procedure wil ik niet voor maar 1 tabel gebruiken, maar voor meedere tabellen, die een andere naam hebben.
Ik ben ingelogd met een SQL user die DB_Owner is.
Wanneer ik deze code invoer binnen mijn query analyser:
Dan krijg ik de volgende melding:
Komt in code hierboven overeen met regel 8
En dat terwijl ik de variabele @tblname als parameter al heb gedeclareerd.
Mijn idee was dat hij binnen het statement dus anders om moet gaan met variabelen. (Alhoewel dat voor de rest niet geld)
Wanneer ik bijvoorbeeld de '@' weghaal, dan wordt de stored procedure keurig gemaakt, maar dan probeert hij data weg te schrijven in de tabel "tblname"
En dat is natuurlijk niet de bedoeling.
Kan iemand mij vertellen hoe je de variabele @tblname op moet geven wil het INSERT INTO statement deze als tabelnaam gaan zien.
Server is SQL 2000. Client is Windows 2000.
Ik wil een stored procedure maken, waarin ik een hele simpele INSERT INTO statement laat doen.
(Ik kan dit ook vanuit vbscript, maar dit schijnt veiliger te zijn.)
De stored procedure wil ik niet voor maar 1 tabel gebruiken, maar voor meedere tabellen, die een andere naam hebben.
Ik ben ingelogd met een SQL user die DB_Owner is.
Wanneer ik deze code invoer binnen mijn query analyser:
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| create proc usp_TEST @tblname varchar(64), @cpu0 int, @cpu1 int, @cpu2 int, @cpu3 int, @mem dec, @loadof int, @loadss int as set nocount on begin insert into @tblname ( colCPU0cntr, colCPU1cntr, colCPU2cntr, colCPU3cntr, colMEMcntr, colLOADOFcntr, colLOADSScntr) values ( @cpu0, @cpu1, @cpu2, @cpu3, @mem, @loadof, @loadss) end |
Dan krijg ik de volgende melding:
code:
1
2
| Server: Msg 137, Level 15, State 2, Procedure usp_TEST, Line 14 Must declare the variable '@tblname'. |
Komt in code hierboven overeen met regel 8
En dat terwijl ik de variabele @tblname als parameter al heb gedeclareerd.
Mijn idee was dat hij binnen het statement dus anders om moet gaan met variabelen. (Alhoewel dat voor de rest niet geld)
Wanneer ik bijvoorbeeld de '@' weghaal, dan wordt de stored procedure keurig gemaakt, maar dan probeert hij data weg te schrijven in de tabel "tblname"
En dat is natuurlijk niet de bedoeling.
Kan iemand mij vertellen hoe je de variabele @tblname op moet geven wil het INSERT INTO statement deze als tabelnaam gaan zien.