Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Procédure stockée permettant de déplacer les fichiers de la base système tempdb de SQL Server vers un nouveau répertoire (@dest)
- -- Source : https://www.dsfc.net/bdd/mssql/sql-server-deplacer-fichiers-tempdb/
- CREATE PROCEDURE move_tempdb(@dest VARCHAR(MAX))
- AS
- BEGIN
- -- Déclaration du curseur des fichiers associés à la base système tempdb
- DECLARE cursor_Files CURSOR FOR
- SELECT name,physical_name FROM tempdb.sys.database_files;
- -- Déclaration des variables utilisées par la procédure stockée
- DECLARE @name VARCHAR(MAX);
- DECLARE @path VARCHAR(MAX);
- -- DECLARE @dest VARCHAR(MAX) = 'e:\tempdb';
- DECLARE @file VARCHAR(MAX);
- DECLARE @pos INT;
- DECLARE @newpath VARCHAR(MAX);
- DECLARE @sql VARCHAR(MAX);
- OPEN cursor_Files;
- FETCH NEXT FROM cursor_Files INTO @name,@path;
- WHILE @@FETCH_STATUS <> -1
- BEGIN
- -- Extraction du nom de fichier du chemin
- SET @pos=CHARINDEX('\',REVERSE(@path));
- PRINT @pos;
- SET @file=RIGHT(@path,@pos)
- PRINT @file;
- SET @newpath=@dest+@file;
- -- Exécution de l'instruction SQL pour déplacer les fichiers
- SET @sql='ALTER DATABASE tempdb MODIFY FILE (NAME =''' + @name+ ''', FILENAME=''' + @newpath + ''')';
- PRINT @sql;
- EXECUTE (@sql);
- FETCH NEXT FROM cursor_Files INTO @name,@path;
- END;
- CLOSE cursor_Files;
- DEALLOCATE cursor_Files;
- END;
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement