資料庫
要匯入外部來的資料庫,有時候用bak還原不回來,我就會想用指令碼的方式來處理,就算沒有匯入,至少可以逐行拿insert來看結果
從新增查詢(N) (在上方工具列可以看到),
要選擇master資料庫,刪除其他正在使用資料庫的連線,先輸入按 !執行(X)
sp_who
看看哪個執行緒把正在使用的dbname資料庫佔走,用kill指令對應spid砍掉
如果要看結果,把sp_who擺在後面可以馬上看到刪除結果
kill 51;
sp_who
但資料庫重建時,以前測試期都小小的沒差,後來檔案越來越大,指令碼也越長,總算在大到30萬筆的時候,出現記憶體不足的錯誤訊息
勉勉強強的找了臨時替代方案,在命令提示字元中,使用sqlcmd可以解決這問題
sqlcmd -S PcName\SQLEXPRESS -U sa -P password -d DataBaseName -i C:\Script.sql -oC:\log.txt
-S: 此處為在 SSMS 裡寫在「伺服器名稱」的值
-U: 此處為在 SSMS 裡寫在「登入」的值
-P: 此處為在 SSMS 裡寫在「密碼」的值
-i: 匯入的腳本檔,也就是剛才使用資料庫發行精靈 (SqlPubWiz.exe) 產生出來的檔案
-o: 匯出的檔案,內容大致是平常在 SSMS 裡執行 SQL 語法時會出現在「訊息」窗格裡的內容(我是覺得這批匯入所產生的 log,和我在 SSMS 執行時看到的訊息量不太一樣)
如果是用bak正常還原,出現限制的使用者,可以在屬性>選項>狀態的限制存取裡
「Multiple」、「Single」與「Restricted」改成Multiple就可以了
http://fannys23.pixnet.net/blog/post/29336021 [MSSQL] 使用命令列模式執行大量 SQL 語法
http://blog.xuite.net/tolarku/blog/36344366 MSSQL 資料庫 - 限制的使用者
Windows VISTA / 7 / Server 2008這些作業系統,好像在某些特殊目錄底下,都設了奇怪的權限
不像以前的 Windows XP / Server 2003那樣,管理員想進入哪個目錄都如入無人之境
只好乖乖的把以前的資料庫檔案 .mdf與 . ldf兩個檔案
放到 C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data
如果您 OS是 x64的版本,而SQL Server是32 bit版, 則是放到 C:\Program Files(x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data
http://www.dotblogs.com.tw/mis2000lab/archive/2010/02/10/13565.aspx