我目前正在對應用程序進行一些維護,並且遇到了有關tsql中限定名稱的大問題。我想知道是否有人能爲我解決我的困惑。合格的命名
根據我的理解,您希望使用USE [DatabaseName]
來聲明您正在使用哪個數據庫。我注意到如果你「重命名」數據庫,它會自動更新你的代碼中的這些引用。
但是,最初編寫此代碼的開發人員使用了USE [DatabaseName]
。然後在後來的發言中他寫道:SELECT * FROM [DatabaseName].[dbo].[Table]
。好吧,如果我更改數據庫的名稱,這顯然會中斷。從我讀過的你想要限定的名字只有所有者,如:[dbo].[TableName]
,所以它知道在哪裏尋找提高性能。
他是否有理由在每個語句中包含數據庫名稱?
那麼你是否會創造同義詞?因爲如果我使用3或4部分限定符,然後重命名數據庫,則必須經過並修復所有的命名。我只是這麼說,因爲當我重新命名數據庫時,它會自動更正「USE」語句,但沒有更新任何內聯命名。 – MisterIsaak 2010-09-23 16:07:05
@Jisaak:不,在SQL Server上沒有使用同義詞。更新數據庫名稱很簡單 - SSMS的查找(Ctrl-F)具有查找和替換功能,例如全局替換。 – 2010-09-23 16:12:14
嗯。好吧,100個sprocs仍然看起來很痛苦。謝謝您的幫助。 – MisterIsaak 2010-09-23 16:25:35