Ik ben een stored procedure aan het maken die voor een complete Microsoft SQL (7) database alle lege strings update naar NULL.
Om dit met behulp van een stored procedure te doen is compleet nieuw voor mij, maar dit lijkt mij de beste oplossing.
Ik ben met behulp van voorbeelden gaan programmeren en dit is mijn resultaat:
Nu geeft SQL server mij de foutmelding:
"must declare the variable '@TABEL_NAAM'" en
"Incorrect syntax near the keyword 'WHERE'"
Hij heeft het hierbij over de variabelen in het volgende gedeelte:
Ik snap hier dus echt niets van, ik heb de variabelen toch al ge-declared???
Kan iemand mij helpen?
Om dit met behulp van een stored procedure te doen is compleet nieuw voor mij, maar dit lijkt mij de beste oplossing.
Ik ben met behulp van voorbeelden gaan programmeren en dit is mijn resultaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| CREATE PROCEDURE [James].[NEWNULL] AS
DECLARE RS CURSOR FOR SELECT NAME,ID FROM SYSOBJECTS WHERE XTYPE='u'
OPEN RS
DECLARE @TABEL_NAAM Varchar(100)
DECLARE @TABEL_ID Varchar(100)
FETCH NEXT FROM RS INTO @TABEL_NAAM, @TABEL_ID
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE RS2 CURSOR FOR SELECT NAME,ID FROM SYSCOLUMNS WHERE ID=@TABEL_ID
OPEN RS2
DECLARE @KOLOM_NAAM Varchar(100)
DECLARE @KOLOM_ID Varchar(100)
FETCH NEXT FROM RS2 INTO @KOLOM_NAAM, @KOLOM_ID
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @TABEL_NAAM2 VARCHAR(100)
DECLARE RS3 CURSOR FOR SELECT @KOLOM_NAAM FROM @TABEL_NAAM
OPEN RS3
DECLARE @VELDWAARDE Varchar(100)
FETCH NEXT FROM RS3 INTO @VELDWAARDE
WHILE @@FETCH_STATUS = 0
BEGIN
If rtrim(@VELDWAARDE)='' UPDATE @TABEL_NAAM SET @KOLOM_NAAM=NULL WHERE @KOLOM_NAAM=@VELDWAARDE
FETCH NEXT FROM RS3 INTO @VELDWAARDE
END
CLOSE RS3
DEALLOCATE RS3
FETCH NEXT FROM RS2 INTO @KOLOM_NAAM, @KOLOM_ID
END
CLOSE RS2
DEALLOCATE RS2
FETCH NEXT FROM RS INTO @TABEL_NAAM, @TABEL_ID
END
CLOSE RS
DEALLOCATE RS
GO |
Nu geeft SQL server mij de foutmelding:
"must declare the variable '@TABEL_NAAM'" en
"Incorrect syntax near the keyword 'WHERE'"
Hij heeft het hierbij over de variabelen in het volgende gedeelte:
code:
1
2
3
4
5
6
7
8
9
10
11
| DECLARE RS3 CURSOR FOR SELECT @KOLOM_NAAM FROM @TABEL_NAAM
OPEN RS3
DECLARE @VELDWAARDE Varchar(100)
FETCH NEXT FROM RS3 INTO @VELDWAARDE
WHILE @@FETCH_STATUS = 0
BEGIN
If rtrim(@VELDWAARDE)='' UPDATE @TABEL_NAAM SET @KOLOM_NAAM=NULL WHERE @KOLOM_NAAM=@VELDWAARDE |
Ik snap hier dus echt niets van, ik heb de variabelen toch al ge-declared???
Kan iemand mij helpen?
I laugh in the face of danger ... ... then I hide and wait until it goes away -