Dr *_*ick 2 sql-server collation
我正在将数据库安装到客户端的服务器上.在服务器上设置的排序规则是SQL_Latin1_General_CP1_CS_AS,因此它区分大小写.
我正在安装的数据库使用排序规则级别SQL_Latin1_General_CP1_CI_AS,因此它不区分大小写.
我现在遇到的问题是存储过程中的所有变量必须区分大小写,否则会引发错误.
例:
Declare @Dimension varchar(45)
Set @dimension = 'Test'
Run Code Online (Sandbox Code Playgroud)
错误:
Must declare the scalar variable "@dimension".
Run Code Online (Sandbox Code Playgroud)
@dimension变量中的小写"d"使其被识别为完全不同的变量.
我可以更新数据库中的设置以忽略服务器的排序规则吗?
注意:我获得了在服务器级别更新排序规则的权限,因为它是测试服务器.但是,这是一个更复杂的过程.我正在寻找一种解决方法,而无需通过此链接中的步骤:
Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=InstanceName
/SQLSYSADMINACCOUNTS=accounts /[ SAPWD= StrongPassword ]
/SQLCOLLATION=CollationName谢谢
要解决此问题,请将数据库设置为" 部分包含".这将为您提供Contained Database Collation,它提供:
由于包含数据库的设计目标是使它们自包含,因此必须切断对实例和tempdb排序规则的依赖性.为此,包含的数据库引入了目录排序规则的概念.目录归类用于系统元数据和临时对象.
在包含的数据库中,目录排序规则Latin1_General_100_CI_AS_WS_KS_SC.对于所有SQL Server实例上的所有包含的数据库,此排序规则相同,并且无法更改.
| 归档时间: |
|
| 查看次数: |
233 次 |
| 最近记录: |