Archive for SQL server

[MSSQL] 備份/還原部份表格

image

 

最近工作遇到一個有點棘手的狀況,由於需要更新客戶端的部份表格  (因部份表格客戶已新增資料)

麻煩的是表格之間還有關聯關系 (Foreign Key) ,且表格有設定

 

使用的工具如下

Microsoft SQL Server Management Studio

MS SQL Express

 

以下步驟可以順利完成備份 / 還原表格之需求

 

Read more

[SQL] 選取重覆的資料

今天遇到需要看看說資料庫裡面是不是有重覆的資料

於是就使用了以下的語法

 

SELECT COUNT(*), email, name,phone FROM account
GROUP BY email
HAVING COUNT(*)>1;

 

意思是把 account 裡面有 email 相同的資料都取出他們的 email, name, phone

蠻方便的

有時候資料裡會有相同資料的狀況,要進行確認

[SQL Server]將 SQL 資料搬移到 MySQL

image

 

起因:

因為收到了一個 .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

image

 

步驟二:在資料庫上方按右鍵,先新增一個資料庫,假設取名叫 temp

image

 

 

步驟三:選擇 “還原檔案和檔案群組”

image

 

步驟四:匯入 .bak 檔 (因為我收到的是一個 bak 檔)

image

 

步驟五:檢查 bak 檔內容,察看原本的資料庫名稱

image

 

步驟六:在 系統資料庫上面的 master 上按右鍵選擇「新增查詢」,手動設定還原路徑 (要自己調成自己系統的路逕)

image

 

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.紅色為上一步驟得到的資料庫名稱

完成之後會得以下這個訊息

image

 

但我有遇到一個狀況…

總之有可能

 

 

步驟七:再次進行還原,選擇 「還原資料庫」

image

image

一樣選擇剛剛待還原的 bak 檔

如此一來就完成匯入的動作

 

步驟八:

從 MSSQL output .csv 檔出來

第一次嘗試,我是用 sqlToTxt 這個工具,有一個月試用,但是只能 ouput 1000 筆… 放棄

image

第二次嘗試,其實 SQL server 本身就有 output 的功能

因為我的電腦是 express 版本所以才沒有

後來就跟別人借電腦 output csv 成功了

 

 

步驟九:

因為 csv 是用 , 做為資料的區隔

只要在 MySQL 建立好相對應的”資料庫”以及其”資料表名稱型態”

之後再用 Phpmyadmin 內建的 import 資料

image

將 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