DECLARE @newDriveAndFolder VARCHAR(8000);
SET @newDriveAndFolder = 'Z:\YourTempDBfolder';
SELECT [name] AS [Logical Name]
,physical_name AS [Current Location]
,state_desc AS [Status]
,size*8/1024 AS [Size(MB)] --Number of 8KB pages dived by 1024
,'ALTER DATABASE tempdb MODIFY FILE (NAME = ' + QUOTENAME(f.[name])
+ CHAR(9) /* Tab */
+ ',FILENAME = ''' + @newDriveAndFolder + CHAR(92) /* Backslash */ + f.[name]
+ CASE WHEN f.[type] = 1 /* Log */ THEN '.ldf' ELSE '.mdf' END + ''''
+ ');'
AS [Create new TempDB files]
FROM sys.master_files f
WHERE f.database_id = DB_ID(N'tempdb')
ORDER BY f.[type];
移动 TempDB 文件是一个两步过程:
SQL Server
更改生效要告诉 SQL 在哪里创建新的 TempDB 文件,您可以使用:
这将生成您需要运行的 T-SQL 语句,以将文件移动到
drive:\folder
您想要的新文件。(点击图片放大)运行移动语句后,您可以再次运行上述查询,以检查该
Current Location
列现在是否显示您的新drive:\folder
.对更改感到满意后,重新启动 SQL Server 服务。
上面脚本中大小(MB)的计算是关闭的。不要忘记 sys.master_files 中的大小是 8KB 页面的数量。这是正确的脚本: