2011-12-07 56 views
0

我需要挖掘一個SQL Server數據庫,並且我給出的轉儲似乎是一個二進制文件,而不是我習慣於使用MySQL和Postgres的通常的基於文本的SQL語句轉儲。從二進制SQL Server轉儲生成原始SQL語句?

這是通常的方式SQL Server數據庫導出還是這種問題?如果前者,是否有可能將其轉換爲我習慣的SQL文本文件,以便我可以查看它?或者我可以問問給我的那個人用文本而不是二進制文件輸出嗎?

回答

3

「MSSQL轉儲」實際上可能指的不是單一的東西。

你需要知道你實際得到了什麼。它是MSSQL備份文件(通常是.bak)還是簡單的分離數據庫(.mdf)?

如果是前者,則可以使用SQL Management Studio進行恢復,如果是後者,則只需重新連接即可。

沒有簡單的方法從備份獲取到INSERT命令的SQL腳本等。您將不得不將其恢復到SQL服務器,然後使用DTS或SQL Server Management Studio導出到SQL。

但是,請注意,有沒有保證 SQL將符合MySQL或任何其他SQL產品。

+0

這是一個.bak。所以你說我沒有辦法像在MySQL中那樣獲得SQL語句的文本轉儲?我的計劃是使用vim宏直接從文件中獲取數據(並且完全避免使用SQL服務器),但是如果沒有解析文本文件,我顯然不能這麼做。 –

+0

您需要先恢復到MSSQL,然後導出到普通SQL。看到我更新的答案。 – Cylindric

1

@Cylindric涵蓋了最有可能的情況。一個不太可能的選擇(以及我首先想到的)是,如果您擁有的應該是單個數據集(即一個表的內容),則它可能是使用BCP實用程序使用「本機格式」(或也許Unicode原生格式)。我相信,唯一的解讀方法就是將它重新設爲數據庫。總的來說,當有人向你提供一組數據時,他們也應該向你提供數據所用格式和格式的解釋。即使使用XML,「自描述」數據格式,你也可以應該有一個XLS表格或讓你知道什麼神祕標籤,如< xzb>所代表的東西。

相關問題