zoukankan      html  css  js  c++  java
  • SQL SERVER 如何修改数据库文件路径

    原文地址: https://blog.csdn.net/baomfeng/article/details/84031971

    DECLARE @DBNAME VARCHAR(255)
     DECLARE @TargetPath VARCHAR(255)
     DECLARE @CmdCommand VARCHAR(2000)
    
    SET @DBNAME='GTN_New2019'
     SET @TargetPath='D:MyDB'
    
    --第一步:设置数据库脱机
    SET @CmdCommand= 'ALTER DATABASE '+@DBNAME+' SET OFFLINE'
     EXEC(@CmdCommand)
    
    --第二步:物理拷贝数据库文件到新目录
    DECLARE @FileName VARCHAR(255)
     DECLARE @SourceFullName VARCHAR(255)
     DECLARE FileCur CURSOR for SELECT name,physical_name from sys.master_files where database_id=db_id(@DBNAME)
     OPEN FileCur
     FETCH NEXT FROM FileCur INTO @FileName,@SourceFullName
     WHILE @@FETCH_STATUS=0
     BEGIN
      SET @CmdCommand= 'copy "'+@SourceFullName+'" "'+@TargetPath+'"'
      EXEC master..xp_cmdshell @CmdCommand
      
      --修改数据库文件的路径指向新目录
     SET @CmdCommand='ALTER DATABASE '+@DBNAME+' MODIFY FILE(FILENAME='''+@TargetPath+CASE WHEN RIGHT(@TargetPath,1)=''THEN'' ELSE'' END+
       RIGHT(@SourceFullName, CHARINDEX('', REVERSE(@SourceFullName))-1)+''',name='''+@FileName+''')'
      EXEC(@CmdCommand)
      FETCH NEXT FROM FileCur INTO @FileName,@SourceFullName
     END
     CLOSE FileCur
     DEALLOCATE FileCur
    
    --第三步:设置数据库联机
    SET @CmdCommand= 'ALTER DATABASE '+@DBNAME+' SET ONLINE'
     EXEC(@CmdCommand)
  • 相关阅读:
    sudo配置临时取得root权限
    Linux 前台 和 后台进程 说明
    延迟加载
    事件代理
    字符串方法总结
    javascript
    HTML
    通用样式,如清除浮动
    html脱离文档流事件
    经典容易忽略的行内块
  • 原文地址:https://www.cnblogs.com/juneyss/p/11347392.html
Copyright © 2011-2022 走看看