Ik probeer dynamic sql in de declaratie van een cursor te gebruiken, maar helaas nog zonder sucses. Kan iemand mij misschien hierbij bij helpen.
Het volgende heb ik:
Ik krijg dan de volgende fout:
Msg 156, Level 15, State 1, Procedure sp_DatabaseFiles_New, Line 22
Incorrect syntax near the keyword 'EXEC'.
Het volgende heb ik:
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
| set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER PROCEDURE [dbo].[sp_DatabaseFiles_New]
@DatabaseName varchar(100)
AS
DECLARE @SQL varchar(max)
DECLARE @DatabaseID int
DECLARE @FileID int
SELECT @DatabaseID = DatabaseID
FROM dbo.Databases
WHERE Name = @DatabaseName
SELECT @SQL =
'SELECT File_ID
FROM ' + CAST(@DatabaseName AS sysname) + '.sys.database_files'
DECLARE cDatabaseFile CURSOR FOR
EXEC (@SQL)
OPEN cDatabaseFile
FETCH NEXT FROM cDatabaseFile INTO @FileID
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @FileID
FETCH NEXT FROM cDatabaseFile INTO @FileID
END
CLOSE cDatabaseFile
DEALLOCATE cDatabaseFile |
Ik krijg dan de volgende fout:
Msg 156, Level 15, State 1, Procedure sp_DatabaseFiles_New, Line 22
Incorrect syntax near the keyword 'EXEC'.
[ Voor 7% gewijzigd door Verwijderd op 06-04-2009 21:08 ]