sqlserver数据库移动数据库路径的脚本示例
您现在的位置:首页>教程>编程开发>mssql数据库 > sqlserver数据库移动数据库路径的脚本示例 sqlserver数据库移动数据库路径的脚本示例 感谢 3lian8 的投递 时间:2013-12-06 来源:三联教程 前段时间做过这么一件事情,把原本放在c盘的所有数据库(除了sql
您现在的位置:首页 > 教程 > 编程开发 > mssql数据库 > sqlserver数据库移动数据库路径的脚本示例
sqlserver数据库移动数据库路径的脚本示例
感谢 3lian8 的投递 时间:2013-12-06 来源:三联教程
前段时间做过这么一件事情,把原本放在c盘的所有数据库(除了sql server系统文件外)文件Move到D盘,,主要是为了方便后续管理以及减少磁盘I/O阻塞(C,D是2个独立磁盘)。脚本需输入2个参数:目标数据库名字和目标目录
代码如下:
USE master
GO
DECLARE
@DBName sysname,
@DestPath varchar(256)
DECLARE @DB table(
name sysname,
physical_name sysname)
BEGIN TRY
SELECT
@DBName = 'TargetDatabaseName', --input database name
@DestPath = 'D:SqlData' --input destination path
-- kill database processes
DECLARE @SPID varchar(20)
DECLARE curProcess CURSOR FOR
SELECT spid
FROM sys.sysprocesses
WHERE DB_NAME(dbid) = @DBName
OPEN curProcess
FETCH NEXT FROM curProcess INTO @SPID
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC('KILL ' + @SPID)
FETCH NEXT FROM curProcess
END
CLOSE curProcess
DEALLOCATE curProcess
-- query physical name
INSERT @DB(
name,
physical_name)
SELECT
A.name,
A.physical_name
FROM sys.master_files A
INNER JOIN sys.databases B
ON A.database_id = B.database_id
AND B.name = @DBName
WHERE A.type
--set offline
EXEC('ALTER DATABASE ' + @DBName + ' SET OFFLINE')
--move to dest path
DECLARE
@login_name sysname,
@physical_name sysname,
@temp_name varchar(256)
DECLARE curMove CURSOR FOR
SELECT
name,
physical_name
FROM @DB
OPEN curMove
FETCH NEXT FROM curMove INTO @login_name,@physical_name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @temp_name = RIGHT(@physical_name,CHARINDEX('',REVERSE(@physical_name)) - 1)
EXEC('exec xp_cmdshell ''move "' + @physical_name + '" "' + @DestPath + '"''')
EXEC('ALTER DATABASE ' + @DBName + ' MODIFY FILE ( NAME = ' + @login_name
+ ', FILENAME = ''' + @DestPath + @temp_name + ''')')
FETCH NEXT FROM curMove INTO @login_name,@physical_name
END
CLOSE curMove
DEALLOCATE curMove
-- set online
EXEC('ALTER DATABASE ' + @DBName + ' SET ONLINE')
-- show result
SELECT
A.name,
A.physical_name
FROM sys.master_files A
INNER JOIN sys.databases B
ON A.database_id = B.database_id
AND B.name = @DBName
END TRY
BEGIN CATCH
SELECT ERROR_MESSAGE() AS ErrorMessage
END CATCH
GO
相关文章
标签:
[返回三联首页] [返回mssql数据库栏目] / [加入三联文集]

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

导入步骤如下:将 MDF 文件复制到 SQL Server 的数据目录(通常为 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)。在 SQL Server Management Studio(SSMS)中,打开数据库并选择“附加”。单击“添加”按钮,选择 MDF 文件。确认数据库名称,点击确定按钮即可。

如果 SQL Server 安装失败,可通过以下步骤清理:卸载 SQL Server删除注册表项删除文件和文件夹重启计算机

7月23日消息,博主数码闲聊站爆料称,小米15Pro电池容量增大至6000mAh,支持90W有线闪充,这将是小米数字系列电池最大的Pro机型。此前数码闲聊站透露,小米15Pro的电池拥有超高能量密度,硅含量远高于竞品。硅基电池在2023年大规模试水后,第二代硅负极电池被确定为行业未来发展方向,今年将迎来直接竞争的高峰。1.硅的理论克容量可达4200mAh/g,是石墨克容量的10倍以上(石墨的理论克容量372mAh/g)。对于负极而言,当锂离子嵌入量达到最大时的容量为理论克容量,这意味着相同重量下

MySQL 和 SQL Server 的语法差异主要体现在数据库对象、数据类型、SQL 语句和其他方面。数据库对象差异包括存储引擎和文件组的指定方式、索引和约束的创建。数据类型差异涉及数值类型、字符类型和日期时间类型的差异。SQL 语句差异体现在结果集限制、数据插入、更新和删除操作等方面。其他差异还包括标识列、视图和存储过程的创建方式。了解这些差异对于使用不同的数据库系统时避免错误非常重要。

SQL Server 删除不干净导致无法重新安装的问题可以通过以下步骤解决:手动删除文件和注册表项;使用 SQL Server 安装卸载工具;使用第三方卸载工具;检查 Windows 事件查看器;重新启动计算机;重新安装 SQL Server。

Hibernate多态映射可映射继承类到数据库,提供以下映射类型:joined-subclass:为子类创建单独表,包含父类所有列。table-per-class:为子类创建单独表,仅包含子类特有列。union-subclass:类似joined-subclass,但父类表联合所有子类列。

Navicat 数据库配置文件的存储位置因操作系统而异:Windows:用户特定路径为 %APPDATA%\PremiumSoft\Navicat\macOS:用户特定路径为 ~/Library/Application Support/Navicat\Linux:用户特定路径为 ~/.config/navicat\配置文件名称包含连接类型,如 navicat_mysql.ini。这些配置文件存储数据库连接信息、查询历史和 SSH 设置。

苹果公司最新发布的iOS18、iPadOS18以及macOSSequoia系统为Photos应用增添了一项重要功能,旨在帮助用户轻松恢复因各种原因丢失或损坏的照片和视频。这项新功能在Photos应用的"工具"部分引入了一个名为"已恢复"的相册,当用户设备中存在未纳入其照片库的图片或视频时,该相册将自动显示。"已恢复"相册的出现为因数据库损坏、相机应用未正确保存至照片库或第三方应用管理照片库时照片和视频丢失提供了解决方案。用户只需简单几步
