2011-07-02 55 views
5

我有一個SQL Server與幾個數據庫。我希望這些數據庫中的一個對變量名稱區分大小寫,而其他數據庫則不區分大小寫。SQL Server中區分大小寫的變量

我需要更改設置,所以我可以運行此腳本沒有錯誤

DECLARE @A int 
DECLARE @a int 

如何改變一個數據庫區分大小寫(其變量名),同時允許在實例中的其他數據庫是對變量名稱不區分大小寫?

回答

10

您需要更改服務器排序規則區分大小寫得到你想要的行爲。只是改變數據庫的排序規則是不夠的。


SQL Server安裝的默認排序規則SQL_Latin1_General_CP1_CI_AS不區分大小寫。

聽起來好像您想要將服務器的排序規則修改爲不區分大小寫的排序規則。選擇一個與_CS。所述_CI裝置「不區分大小寫」,和區分大小寫是_CS。也許你會想要Latin1_General_CS_AS

這是一個偉大的答案上Changing SQL Server collation to case insensitive from case sensitive?先前的問題。

SQL Server Books Online

COLLATE (Transact-SQL)

標識符的排序規則取決於在它被定義的級別。

  • 實例級別對象的標識符(如登錄名和數據庫名稱)被分配爲實例的默認排序規則。在數據庫內
  • 標識符的對象,如表,視圖和列名,被分配的數據庫的默認排序規則。

    例如,只有在情況下不同的名稱的兩個表可與區分大小寫的歸類的數據庫創建,但是可能無法在一個數據庫與區分大小寫排序來創建。有關更多信息,請參閱Database Identifiers

  • 變量標識符,GOTO標籤臨時存儲過程,並臨時表是在服務器實例的默認排序規則。當連接上下文與一個數據庫相關聯,然後當上下文已經被切換到另一個數據庫中引用可以被創建

    變量,GOTO標籤,臨時存儲的過程,和臨時表。

可以使用檢查服務器歸類:

SELECT SERVERPROPERTY('collation'); 

SQL_Latin1_General_CP1_CI_AS 
(1 row(s) affected) 
相關問題