簡體   English   中英

SQL Server 2005數據庫比較

[英]SQL Server 2005 database comparison

我正在從事數據集中化項目。 我必須將數據從兩個數據庫轉移到第三個新創建的主數據庫中。現有數據庫保存相同類型的數據,表是相同的,等等。但是在此之前,我需要檢查是否存在於現有兩個數據庫中的主表相同,即兩個數據庫中兩個相同表的列名,編號等相同。 例如,兩個數據庫都有一個名為SROMaster的表。 我需要檢查db1中的SROMaster是否與db2中的SROMaster保持相同的列。 有人能幫我嗎? 謝謝!

要檢查單個表,您只需在兩個數據庫上向轉換表發出“創建腳本”命令,然后手動比較結果。

您可能還必須使用一些判斷:與什么兼容,即列的順序相同嗎? 這對您而言是否重要,取決於您計划如何對其進行轉換。

如果您有大量要比較的表,則不希望手動進行此操作。 有用於此目的的工具,或者您可以通過在系統目錄中運行proc來推出自己的工具。

鑒於您是在問這個問題,我懷疑您最好選擇一個現有的工具來進行繁重的表比較。 但是,這不被視為堆棧溢出問題。

不確定使用的是哪種平台/語言-但是在任何情況下,要測試給定表是否存在,都可以使用以下T-SQL來完成工作:

SELECT t.*
FROM sys.tables t
WHERE t.Name = 'SROMaster'

這將返回包含有關表的所有信息的行(如果存在的話),否則您將一無所有。

擁有表格后,可以使用以下方法檢查表格具有的列:

SELECT c.*
FROM sys.columns c
INNER JOIN sys.tables t ON c.object_id = t.object_id
WHERE t.Name = 'SROMaster'
ORDER BY c.column_id

您將獲得包含有關列信息的行數據集-比較這兩個列表,以查看兩個表的SROMaster表中是否具有相同的列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM