2013-07-22 34 views
3

當我比較Visual Studio 2012中的數據庫項目的模式與部署在網絡服務器上的遠程數據庫時,它工作正常,但我無法解決現在爲何它失敗的問題。比較數據庫項目的模式時出錯

當我將架構與本地PC上部署的相同數據庫進行比較時,它工作正常。因此,似乎比較工具的作品,但似乎有遠程服務器的問題。任何方式我可以解決這個問題。

我有遠程服務器比較誤差小於:

Error 52 Target is unavailable: Value cannot be null.Parameter name: catalogStamp SqlSchemaCompare2 0 0 
+0

你有沒有找到解決這個問題的方法?我現在有這個問題。 – Kyle

+0

然而,還沒有確切的解決方案,但問題會在一段時間後自動解決。我猜這是某種網絡問題,數據庫駐留的數據庫服務器與我在比較模式的Visual Studio機器之間存在臨時連接問題。 – Nexus23

回答

0

此外,如果你正在使用SQL Server登錄你有到SQL數據庫啓用遠程訪問(是啓用了TCP/IP服務)您的SQl服務器安全選項是否允許Windows身份驗證和SQL Server登錄?

+0

是的。所有可能性你建議,但仍然在努力:) – Nexus23

0

當連接到SQL服務器時,您必須指定登錄名和密碼。如果您使用沒有密碼的登錄來變成這個錯誤。

3

我最近遇到了同樣的問題,可能與原來的海報不一樣,但在我的情況下,這是我連接到的數據庫的兼容級別。

我連接的數據庫是基於Azure的,Microsoft最近已將這些數據庫更新爲默認兼容級別140(相當於SQL 2017)。更早的例子是在早期的水平運行,並從後直奔工作,運行下面的固定我的問題:

ALTER DATABASE [Database_Name] SET COMPATIBILITY_LEVEL = 120 

顯然,一定要檢查任何副作用,你做的任何生產兼容級別更改前D b!

由於蒂博下面評論說,如果你要檢查現有的兼容水平,你可以使用:

SELECT name, compatibility_level FROM sys.databases 

如果你想看到的不同的兼容級別涉及什麼版本看看這裏https://docs.microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level

+1

偉大的發現!我花了4個小時試圖讓Visual Studio發佈目標或服務器用戶名錯誤。 –

+1

很棒的回答。如果你想檢查你的數據庫的COMPATIBILITY_LEVEL,可以使用'SELECT name,compatibility_level FROM sys.databases' –

相關問題