給客戶發布個項目,基於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“。