Bonjour,
J'ai crée le curseur ci-joint afin de changer les tailles par defaut de toutes les bases de données de mes serveurs.
Le soucis est que je ne sais pas comment executer la commande dans le curseur, j'ai essayé de créer une table temporaire pour mettre les instructions dans la table et les faire executer, mais je n'y arrive pas.
Pourriez vous m'aider ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
SET ANSI_NULLS ON
SET NOCOUNT ON
SET QUOTED_IDENTIFIER ON
 
DECLARE @name1 varchar(256)
DECLARE @SQL1 varchar (1000)
DROP TABLE #fraglist
CREATE TABLE #fraglist 
(
   ObjectName CHAR (255))
 
 
DECLARE MyCursor CURSOR 
FOR 
	SELECT name 
	FROM master.dbo.sysdatabases
	WHERE version <> '0' 
OPEN MyCursor
FETCH MyCursor INTO @name1
WHILE @@fetch_Status=0
BEGIN
SET @SQL1 = '
USE [' +  @name1 + ']
select ''ALTER DATABASE [' + @name1 + '] MODIFY FILE ( NAME = ' + @name1 + ' , FILEGROWTH = 0MB , SIZE = '' + 
cast(convert(nvarchar(15), floor(size*1.2 * 8)) + N'' KB'' as nvarchar(15)) + '',MAXSIZE = '' + 
cast(convert(nvarchar(15), floor(size*1.2 * 8)) + N'' KB'' + '')'' as nvarchar(15)) from sysfiles where fileid=''1''
select ''ALTER DATABASE [' + @name1 + '] MODIFY FILE ( NAME = ' + @name1 + ''+ '_log'+ ' , FILEGROWTH = 0MB , SIZE = '' + 
cast(convert(nvarchar(15), floor(size*1.2 * 8)) + N'' KB'' as nvarchar(15)) + '',MAXSIZE = '' + 
cast(convert(nvarchar(15), floor(size*1.2 * 8)) + N'' KB'' + '')'' as nvarchar(15)) from sysfiles where fileid=''2''
'
 
INSERT INTO #fraglist 
EXEC (@SQL1)
FETCH MyCursor INTO @name1
END
CLOSE myCursor
DEALLOCATE myCursor;
select * from #fraglist