Stu*_*ens 10 sql-server sql-server-2008
我有一个包含多个数据库的SQL Server.我希望其中一个数据库对变量名称区分大小写,而其他数据库则不区分大小写.
我需要更改设置,以便我可以毫无错误地运行此脚本
DECLARE @A int
DECLARE @a int
Run Code Online (Sandbox Code Playgroud)
如何将一个数据库更改为区分大小写(对于其变量名称),同时允许实例上的其他数据库对变量名称不区分大小写?
Mik*_*son 14
您需要将服务器排序规则更改为区分大小写以获取所需的行为.仅更改数据库的排序规则是不够的.
SQL Server安装的默认排序规则SQL_Latin1_General_CP1_CI_AS不区分大小写.
听起来您想要将服务器的排序规则修改为不区分大小写的排序规则.选择一个_CS.的_CI意思是" 不区分大小写 ",和区分大小写是_CS.也许你会想要的Latin1_General_CS_AS.
对于上一个关于将SQL Server排序规则更改为区分大小写不区分大小写的问题,这是一个很好的答案吗?.
COLLATE(Transact-SQL)
标识符的排序规则取决于标识符的定级级别.
- 实例级对象的标识符(例如登录名和数据库名)将分配实例的默认排序规则.
数据库中对象的标识符(例如表,视图和列名称)将分配数据库的默认排序规则.
例如,可以在具有区分大小写的排序规则的数据库中创建两个名称仅在大小写不同的表,但可能不会在具有不区分大小写的排序规则的数据库中创建.有关更多信息,请参阅数据库标识符.
变量,GOTO标签,临时存储过程和临时表的标识符位于服务器实例的默认排序规则中.
当连接上下文与一个数据库关联时,可以创建变量,GOTO标签,临时存储过程和临时表,然后在将上下文切换到另一个数据库时引用.
您可以使用以下方法检查服务器排序规则
SELECT SERVERPROPERTY('collation');
SQL_Latin1_General_CP1_CI_AS
(1 row(s) affected)
Run Code Online (Sandbox Code Playgroud)