最近工作遇到一個有點棘手的狀況,由於需要更新客戶端的部份表格 (因部份表格客戶已新增資料)
麻煩的是表格之間還有關聯關系 (Foreign Key) ,且表格有設定
使用的工具如下
Microsoft SQL Server Management Studio
MS SQL Express
以下步驟可以順利完成備份 / 還原表格之需求
最近工作遇到一個有點棘手的狀況,由於需要更新客戶端的部份表格 (因部份表格客戶已新增資料)
麻煩的是表格之間還有關聯關系 (Foreign Key) ,且表格有設定
使用的工具如下
Microsoft SQL Server Management Studio
MS SQL Express
以下步驟可以順利完成備份 / 還原表格之需求
今天遇到需要看看說資料庫裡面是不是有重覆的資料
於是就使用了以下的語法
SELECT COUNT(*), email, name,phone FROM account
GROUP BY email
HAVING COUNT(*)>1;
意思是把 account 裡面有 email 相同的資料都取出他們的 email, name, phone
蠻方便的
有時候資料裡會有相同資料的狀況,要進行確認
起因:
因為收到了一個 .bak 檔,它是 SQL server 的備份檔
我的任務目標是將其資料匯入 MySQL 中
首先必須在 SQL server 還原後,再 ouput 成 MySQL 可以吃的格式
但因為 SQL server 的還原功能本身怪怪的,如果出現以下訊息,
還原MSSQL遇到備份組包含現有的xxx資料庫以外的資料庫備份問題
Read more: http://ssorc.tw/rewrite.php/read-997.html#ixzz0kwHfSRj1
必須加入使用以下步驟:
步驟一:開啟 SQL server
步驟二:在資料庫上方按右鍵,先新增一個資料庫,假設取名叫 temp
步驟三:選擇 “還原檔案和檔案群組”
步驟四:匯入 .bak 檔 (因為我收到的是一個 bak 檔)
步驟五:檢查 bak 檔內容,察看原本的資料庫名稱
步驟六:在 系統資料庫上面的 master 上按右鍵選擇「新增查詢」,手動設定還原路徑 (要自己調成自己系統的路逕)
restore DATABASE temp2
from disk=’G:\My document\classes\classes\papers\data\ppy_temp_2.bak’
with
move ‘temp2′ to ‘D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\temp2.mdf’,
move ‘temp2_Log’ to ‘D:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\temp2_log.ldf’
,NoRecovery
,Replace
go
輸入完後按「執行」
ps1.藍色為檔名
ps2.紅色為上一步驟得到的資料庫名稱
完成之後會得以下這個訊息
但我有遇到一個狀況…
總之有可能
步驟七:再次進行還原,選擇 「還原資料庫」
一樣選擇剛剛待還原的 bak 檔
如此一來就完成匯入的動作
步驟八:
從 MSSQL output .csv 檔出來
第一次嘗試,我是用 sqlToTxt 這個工具,有一個月試用,但是只能 ouput 1000 筆… 放棄
第二次嘗試,其實 SQL server 本身就有 output 的功能
因為我的電腦是 express 版本所以才沒有
後來就跟別人借電腦 output csv 成功了
步驟九:
因為 csv 是用 , 做為資料的區隔
只要在 MySQL 建立好相對應的”資料庫”以及其”資料表名稱型態”
之後再用 Phpmyadmin 內建的 import 資料
將 csv 匯入即可
參考文章:
http://blog.yam.com/iamshiao/article/18601917
http://ssorc.tw/rewrite.php/read-997.html
http://www.withdata.com/ad/sqltotxt/sql-server-export-csv.html
http://msdn.microsoft.com/zh-tw/library/ms162773(SQL.90).aspx