我正在使用SSIS运行一个项目,现在创建了一个新的数据库,并设为区分大小写(CS)的排序规则,但所有的查询、存储过程等都以不区分大小写的方式编写,因此SQL Server现在无法识别它们。我需要在查询中将表名、列名等改为与SQL Server中完全一样。
是否可能拥有一个使用区分大小写排序规则(CS)的数据库,并使用不区分大小写的存储过程、查询等呢?
我正在使用SSIS运行一个项目,现在创建了一个新的数据库,并设为区分大小写(CS)的排序规则,但所有的查询、存储过程等都以不区分大小写的方式编写,因此SQL Server现在无法识别它们。我需要在查询中将表名、列名等改为与SQL Server中完全一样。
是否可能拥有一个使用区分大小写排序规则(CS)的数据库,并使用不区分大小写的存储过程、查询等呢?
在数据库层面上,不区分大小写适用于对象名称。然而,你可以创建一个不区分大小写的数据库,并为每个文本列修改排序规则为区分大小写。我认为这会给你所需的行为。
您可以在列级别应用排序规则。要执行此操作,请在SQL Server Management Studio中右键单击表,然后单击“设计”,然后选择列,在“表设计器”部分的列属性菜单下,您可以选择使用其他排序规则而不是数据库默认值。
请注意,如果某一列是主键的一部分,则无法更改该列的排序规则。
sys
对象中作为sysname
,这是nvarchar(128)NOT NULL
的同义词。这些列继承数据库的默认排序规则,如果更改了该排序规则,则它们也会被更改(文档)。因此,任何更改都会影响所有列,包括用户和系统。 - Thom A