T-SQL - 将 Nvarchar 列设置为数据库排序规则

发布于 2024-12-04 15:41:50 字数 236 浏览 1 评论 0原文

是否可以创建一个脚本,将数据库中所有 nvarchar 列的排序规则设置为数据库排序规则? 我不小心将所有列的排序规则覆盖为错误的排序规则(一个工具毁了我的事情),并且需要创建一个脚本来修复此问题。

我知道我可以通过运行 'SELECT DATABASEPROPERTYEX('[DBName]', 'Collat​​ion');' 来获取数据库排序规则,并且我可以运行更改列命令,但一定有更简单的方法吗?

我很感谢任何帮助!

Is it possible to create a script that sets the collation of all nvarchar columns in a database to the database collation?
I have accidentally overridden the collation of all columns to the wrong collation (a tool ruined things for me) and need to create a script that fixes this.

I know that I can get the DB collation by running 'SELECT DATABASEPROPERTYEX('[DBName]', 'Collation');', and that I can run alter column commands, but there must be a simpler way?

I'm thankful for any help!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

椒妓 2024-12-11 15:41:50

information_schema.columns 的帮助下生成您需要的 SQL:

declare @collation varchar(50)

set @collation = 'YOUR_EXPECTED_COLLATION_NAME'

select 
    'ALTER TABLE [' + table_schema + '].[' + table_name + '] ALTER COLUMN [' + column_name + '] ' + data_type + '(' + convert(varchar, character_maximum_length) + ') COLLATE ' + @collation
from 
    information_schema.columns 
where 
    data_type in ('varchar', 'char', 'nvarchar', 'nchar')
    and collation_name <> @collation

Generate the SQL you need with the help of information_schema.columns:

declare @collation varchar(50)

set @collation = 'YOUR_EXPECTED_COLLATION_NAME'

select 
    'ALTER TABLE [' + table_schema + '].[' + table_name + '] ALTER COLUMN [' + column_name + '] ' + data_type + '(' + convert(varchar, character_maximum_length) + ') COLLATE ' + @collation
from 
    information_schema.columns 
where 
    data_type in ('varchar', 'char', 'nvarchar', 'nchar')
    and collation_name <> @collation
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文