--------------------------------------------------------------------------
-- Author : htl258(Tony)
-- Date : 2010-04-23 20:33:15
-- Version:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)
-- Jul 9 2008 14:43:34
-- Copyright (c) 1988-2008 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 3)
-- Blog : http://blog.youkuaiyun.com/htl258
-- Subject: 批量更改用户表内字符型字段的排序规则
--------------------------------------------------------------------------
DECLARE @S NVARCHAR(1000)
DECLARE C CURSOR FOR --不区分大小写
SELECT 'ALTER TABLE ['+B.NAME+'] ALTER COLUMN ['+A.NAME+'] '+ TYPE_NAME(A.XTYPE)+
CASE WHEN TYPE_NAME(A.XTYPE) IN('TEXT','NTEXT') THEN '' ELSE
QUOTENAME(A.LENGTH,'(')
END +' COLLATE CHINESE_PRC_CI_AS'
FROM SYSCOLUMNS A
JOIN SYSOBJECTS B ON A.ID=B.ID AND B.TYPE='U'
WHERE TYPE_NAME(A.XTYPE) IN('VARCHAR','CHAR','NVARCHAR','NCHAR','TEXT','NTEXT')
OPEN C
FETCH C INTO @S
WHILE @@FETCH_STATUS=0
BEGIN
EXEC(@S)
FETCH C INTO @S
END
CLOSE C
DEALLOCATE C
GO
--注:主键约束与外键约束的字段在此代码中没考虑。
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/htl258/archive/2010/04/23/5522460.aspx
本文提供了一段 SQL 脚本,用于在 Microsoft SQL Server 2008 中批量更改用户表内字符型字段的排序规则为不区分大小写的 CHINESE_PRC_CI_AS。该脚本通过游标遍历所有指定类型的字段并更新其排序规则。
4万+

被折叠的 条评论
为什么被折叠?



