Moving TempDB Script
SET NOCOUNT ON
DECLARE @SQL NVARCHAR(MAX) = '' DECLARE @EXEC NVARCHAR(MAX) = '' DECLARE @RUN BIT = 0 DECLARE @newdatalocation NVARCHAR(256) = ‘L:\temptempdb' DECLARE @newLogLocation NVARCHAR(256) = ‘M:\tempdb_log’ DECLARE @fileName NVARCHAR(64) DECLARE @fileLocation NVARCHAR(256)
DECLARE cur CURSOR FOR SELECT f.NAME ,f.filename FROM sys.sysfiles f
OPEN cur
FETCH NEXT FROM cur INTO @fileName ,@fileLocation
PRINT @fileName PRINT @fileLocation
WHILE @@FETCH_STATUS = 0 BEGIN SELECT @SQL = ‘ALTER DATABASE ' + DB_NAME() + ' modify FILE ( NAME = ' + f.NAME + CHAR(10) + ‘,filename = ' + '’’’ + CASE WHEN RIGHT(f.filename, 3) = ‘ldf’ THEN @newLogLocation ELSE @newdatalocation END + '' + f.NAME + '' + RIGHT(f.filename, 4) + '''' + ‘)’ + CHAR(10) FROM sys.sysfiles f WHERE f.NAME = @fileName
PRINT @SQL
SELECT @EXEC = @EXEC + @SQL
FETCH NEXT FROM cur INTO @fileName ,@fileLocation END
CLOSE cur;
DEALLOCATE cur;
IF @RUN = 1 BEGIN EXEC @EXEC END
Happy Scripting!