我被要求在舊的asp-classic應用程序中進行一些更改。生產服務器和服務器用於測試和開發20多臺路由器,而我的打字和看到這種類型之間的時間間隔是非常可怕的。所以我在這裏設置了一臺服務器,就像安裝了MS SQL Server 2008 R2的他們(MS Server 2008)一樣。我以爲我配置我的數據庫就像他們的。他們有幾百行數千行的舊腳本。如何在MS SQL Server 2008 R2中不使用完全限定的表名稱
我備份了遠程端的測試數據庫,將它複製到我的服務器並在那裏恢復。我複製了他們已經結束的劇本。網站已啓動並正在運行。但是,任何需要查詢數據庫的東西都會產生錯誤「無效的對象名稱atable」。查看它們的代碼並且沒有任何地方有完全限定的名稱。我登錄到遠程服務器啓動Management Studio我問他們是否可以更改所有的代碼來使用完全限定的名字,答案是否定的,我問他們是如何配置數據庫的,答案是前者(他們喜歡它)
所以我的問題;是否有在MS SQL Server 2008默認不使用完全限定名稱的配置選項?他們如何避免不使用數據庫,所有者,他們的代碼中的模式?我作爲應用程序用戶登錄,似乎也不幫助。
請,我知道我們應該使用完全合格的名稱作爲最佳實踐。我讀過關於績效收益/損失的評論。當您自動編寫腳本創建數據庫腳本時,他們的數據庫實例使用模式名稱。如果我使用該模式名稱來爲表名稱加上前綴,那麼一切都很好。他們只是不希望我在編輯或爲他們創建的任何腳本中這樣做。
當您將用戶更改爲全部具有相同的默認模式(dbo,我假設所有這些對象都存在)時會發生什麼?由於你指出的原因,它仍然會很糟糕,但至少沒有人需要糾正他們的代碼。 –
2015-03-30 20:56:56
只有一個用戶。他們的應用程序頁面使用該用戶標識登錄。 – Madcowtricks 2015-03-30 21:02:14
糟糕,點擊「添加評論」的速度太快。這些表由該用戶擁有,並且模式名稱與用戶的名稱相匹配。 – Madcowtricks 2015-03-30 21:03:33