在我的数据库中,一个表排序规则与所有其他表不同。在SQL Server 2008中更改表排序规则的查询
我想将表格整理更改为与所有其他表格相同。
现在,我可以通过使用SSMS设计来更改表格排序规则,但我希望使用查询来更改排序规则。目前,我的一个表格整理是Thai_CI_AS
,我想更改整理是SQL_Latin1_General_CP1_CI_AS
。
无法删除表,因为它已经包含数据。
在我的数据库中,一个表排序规则与所有其他表不同。在SQL Server 2008中更改表排序规则的查询
我想将表格整理更改为与所有其他表格相同。
现在,我可以通过使用SSMS设计来更改表格排序规则,但我希望使用查询来更改排序规则。目前,我的一个表格整理是Thai_CI_AS
,我想更改整理是SQL_Latin1_General_CP1_CI_AS
。
无法删除表,因为它已经包含数据。
千万不要错过consult the documentation。猜测源数据类型和可用性;你可以在表/列名填写:
ALTER TABLE dbo.TableName ALTER COLUMN ColumnName
NVARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL;
如果无法查看文档,管理Studio将有时显示你的聪明的方式做一些事情(尽管它并不总是选择做事情是最好的方式)。进入设计屏幕,更改排序规则,而不是单击确定,单击脚本按钮。
这是一个有效的解决方案,我应用并测试了其中一个jira数据库表的重置排序规则。
- CHANGED列排序规则PROPERLY ALTER TABLE [schemaName].[TableName]
ALTER COLUMN [columnName] [varchar](255)
COLLATE SQL_Latin1_General_CP437_CI_AI NOT NULL;
- 检查字符串列排序规则指定表 --Lists与相应的核对所有字符串列 SELECT c.name,
c.collation_name
FROM SYS.COLUMNS c
JOIN SYS.TABLES t ON t.object_id = c.object_id
WHERE t.name = 'TableName'
and c.collation_name is not null