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 ]