命令行管理sql server

给客户发布个项目,基于sql server数据库的,布署的时候嫌安装sql server安装麻烦,而且还不是正版,开始想装个MSDE得了,后来考虑到只支持到2000,所以还是决定装个sql server2005 express得了。到微软下载回来,50多M,不大,一会就下来了,然后在虚拟机上安装,发现附加数据库是个问题,于是建了一个udl文档,在本机上测试,顺利附加,可是在虚拟机上死活不行,报找不到文件,没办法,不能冒这个险,万一在客户那也不行就不好了,于是只有找命令行的方法,

还是挺简单的,sql server,哪怕是express版,装好后会在系统环境变量里把sqlcmd.exe这个文件所在的目录添加到环境变量里,所以我们可以方便地用命令行来管理数据库:

sqlcmd -S localhost -U sa -P mypwd -d master

这就进入了master数据库了,在这里,你可以写create database语句,也可以开始执行分离、附加数据库的操作了:

1、分离:  sp_detach_db dbweb,true
2、附加:sp_attach_db 'dbweb','c:\test\dbweb.mdf','c:\test\dbweb_log.ldf'

Create Database teach
on(filename='e:\teach\teach.mdf'),
(filename='e:\teach\teach_log.ldf')
for attach

上面是两种附加的方法,我用的是第一种。

3,备份:SqlCmd -E -S MyServer –Q “BACKUP DATABASE dbname TO DISK='D:\Backups\MyDB.bak'”

4,还原:SqlCmd -E -S MyServer –Q “RESTORE DATABASE dbname FROM DISK='D:\Backups\MyDB.bak'”

注,-E 选项会忽略可能的用户名和密码环境变量设置,例如 SQLCMDPASSWORD。如果将 -E 选项与 -U 选项或 -P 选项一起使用,将生成错误消息。

5,更改密码:osql -E sp_password null,'abc123','sa'

此时把sa用户的密码重置成了abc123

附加完毕,客户的sql server也就不要去管了,应该还算简单,一个50来M的sql server 2005 express安装还是费不了什么事的。

注意,一般的增删改查记录的语句需要在换行后加多一句“go“。

原文地址:https://www.cnblogs.com/walkerwang/p/1784822.html