SQL Server数据库批量附加

原理

通过OSQL命令进行数据库实体的批量附加

OSQL:osql 工具是一个 Microsoft Windows 32 命令提示符工具,您可以使用它运行 Transact-SQL 语句和脚本文件。osql 工具使用 ODBC 数据库应用程序编程接口 (API) 与服务器通讯。

通过DIR命令列出的所有的数据库实体

DIR:dir命令存在于[Debian GNU/Linux](Debian_百度百科 GNU%2FLinux/2963314)、AmigaDOS [1] 、TRS-DOS、RT-11、OpenVMS、TOPS-10、OS/8、CP/M系统、GEMDOS、MS-DOSPC-DOSDR-DOSFreeDOSSingularityOS/2WindowsReactOS、RDOS/DOS等操作系统中。

大多数操作系统(包括DOS及Windows)中dir命令基本上会列出目录中的文件及子目录的名称,也可以列出其文件大小,创建时间等相关信息,并且列出所在的磁盘、可用空间等信息。dir命令也可以寻找其文件名称符合特定条件的文件。

提取数据库实体列表

代码

cmd

@echo off
color 0a
title 打印文件名
mode con lines=30 cols=60 
dir  /b /s > 文件夹及文件名.xls

参数

/s:  (subdirectories)

列出指定目录和所有子目录中的文件。

/b:  (bare list)

裸列表,意思是只有文件名。

方法

  1. 新建一个文件:文件夹及文件名.bat,使用文本编辑器打开,将上面的代码拷贝到文件里面,保存文件,文件编码方式以ANSI编码。

  1. 将该文件放到数据库实体所在路径下,双击执行,会在目录下生成一个文件名为文件夹及文件名.xls的表格文件。

  1. 打开生成的表格文件,出现格式提示,点是即可

  1. 打开的文件内为目录下的所有文件路径,通过excel的分列分离文件路径与文件名

  1. 选择固定宽度,下一步

  1. 通过页面的提示将分列线置于路径与文件名之间的位置,下一步

  1. 将分列出来的两列数据格式调整成文本格式,点击完成

  1. 删除不需要的行数据

编辑批量附加代码

代码

highlighter- python

OSQL -U"sa" -P"sa" -S"127.0.0.1" -Q "sp_attach_db '库名','路径\数据文件名','路径\日志文件名'"

参数

[-U 登录 ID] [-P 密码] [-S 服务器] [-Q "sp_attach_db" 附加数据库并退出]

  1. 对刚刚处理的EXCEL表格的B列进行分列,分成文件名与后缀名两列,以分隔符号方式,下一步

  1. .进行分列,数据预览与下图一致,下一步

  1. 将数据格式设置成文本,完成

  1. 新建工作表,通过筛选将数据库名拷贝到新工作表

  1. 在表格D列通过CONCATENATE函数将文件名和后缀名合并,并在中间加上.,转换为值状态,之后删除文件名和后缀名列,

  1. 通过筛选,将数据库文件和日志文件区分开,并复制到刚刚新建的新工作表,并将路径复制到新工作表。

新工作表内容:

  1. 将代码OSQL -U"sa" -P"sa" -S"127.0.0.1" -Q "sp_attach_db复制到新工作表,并修改参数(用户名,密码,服务器),然后复制填充。

  1. 通过CONCATENATE函数按代码模板合并代码,注意符号,尾部通过#代替后面的'"(因为"在函数种无法添加)

  1. 新建一个文本文档,将生成的代码拷贝到新建的文本文件中,并通过查找替换将#替换为'",并另存为.bat文件,文件编码方式以ANSI编码。

运行代码,进行附加

报错提示

  1. 数据库已存在,可不用处理

  1. 拒绝访问

解决办法:给库文件加上Everyone权限,并完全控制

因数据库量较大,可通过软件批量设置

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值