DECLARE @zcreate_index_sql NVARCHAR(max);
SET @zcreate_index_sql = N''; SELECT @zcreate_index_sql = @zcreate_index_sql +
CASE WHEN r.is_primary_key=1 THEN
N'ALTER TABLE [' + r.schemas_name + '].[' + r.tablename + '] ADD CONSTRAINT [' + r.INDEX_name + N'] PRIMARY KEY ' + r.type_desc + N' ' +
r.index_fields +
CASE WHEN r.include_fields<>N'' THEN N' INCLUDE ' + r.include_fields ELSE N'' END +
N' ON [' + r.data_spaces_name + N'];'
ELSE
N'CREATE ' +
CASE WHEN r.is_unique=1 THEN N'UNIQUE ' ELSE N'' END
+ r.type_desc + N' INDEX [' + r.INDEX_name + N'] ON [' + r.schemas_name + '].[' + r.tablename + '] ' + r.index_fields +
CASE WHEN r.include_fields<>N'' THEN N' INCLUDE ' + r.include_fields ELSE N'' END +
N' ON [' + r.data_spaces_name + N'];'
END
FROM (
SELECT b.object_id AS tid,b.schemas_name, b.name AS tablename,c.name as INDEX_name,
REPLACE(REPLACE(REPLACE((SELECT N'[' + y.name + N']' + CASE WHEN x.is_descending_key=1 THEN N' DESC' ELSE N'' END AS field_name
FROM sys.index_columns x
INNER JOIN sys.columns y ON y.object_id = x.object_id AND y.column_id = x.column_id
WHERE x.object_id=c.object_id AND x.index_id=c.index_id AND x.is_included_column=0 ORDER BY x.key_ordinal FOR XML PATH('')) ,N'</field_name><field_name>',N',')
,N'<field_name>',N'(')
,N'</field_name>',N')')
AS index_fields,
REPLACE(REPLACE(REPLACE((SELECT N'[' + y.name + N']' + CASE WHEN x.is_descending_key=1 THEN N' DESC' ELSE N'' END AS field_name
FROM sys.index_columns x
INNER JOIN sys.columns y ON y.object_id = x.object_id AND y.column_id = x.column_id
WHERE x.object_id=c.object_id AND x.index_id=c.index_id AND x.is_included_column=1 ORDER BY x.key_ordinal FOR XML PATH('')) ,N'</field_name><field_name>',N',')
,N'<field_name>',N'(')
,N'</field_name>',N')')
AS include_fields,
c.*
,data_spaces.name AS data_spaces_name
FROM (
SELECT a.*,schemas.name AS schemas_name FROM sys.tables AS a
INNER JOIN sys.schemas ON schemas.schema_id = a.schema_id
INNER JOIN (
SELECT * FROM [XServer\PREDEPLOY].DB1.sys.tables AS [Tables] WHERE Tables.name LIKE N'tbl%') AS b
ON b.name = a.name COLLATE SQL_Latin1_General_CP1_CI_AS
)b
INNER JOIN sys.indexes c ON c.object_id = b.object_id
INNER JOIN sys.data_spaces ON data_spaces.data_space_id = c.data_space_id
WHERE c.type IN (1,2)
) r
; DECLARE @zdrop_index_sql NVARCHAR(max);
SET @zdrop_index_sql = N''; SELECT @zdrop_index_sql = @zdrop_index_sql +
CASE WHEN r.is_primary_key=1 THEN
N'ALTER TABLE [' + r.schemas_name + '].[' + r.tablename + '] DROP CONSTRAINT [' + r.INDEX_name + N'];'
ELSE
N'DROP INDEX [' + r.INDEX_name + N'] ON [' + r.schemas_name + '].[' + r.tablename + ']; '
end
FROM (
SELECT b.object_id AS tid,b.schemas_name, b.name AS tablename,c.name as INDEX_name,c.is_primary_key
FROM (
SELECT a.*,schemas.name AS schemas_name FROM sys.tables AS a
INNER JOIN sys.schemas ON schemas.schema_id = a.schema_id
INNER JOIN (
SELECT * FROM [XServer\PREDEPLOY].DB1.sys.tables AS [Tables] WHERE Tables.name LIKE N'tbl%') AS b
ON b.name = a.name COLLATE SQL_Latin1_General_CP1_CI_AS
)b
INNER JOIN sys.indexes c ON c.object_id = b.object_id
WHERE c.type IN (1,2)
) r
; DECLARE @z_change_collation_sql NVARCHAR(max);
SET @z_change_collation_sql = N'';
SELECT
@z_change_collation_sql = @z_change_collation_sql + N' alter table ' + [Tables].name + N' alter column ' + [Columns].name + N' ' + Types.name + N'(' + CASE WHEN [Columns].max_length=-1 THEN N'max' else CAST([Columns].max_length/2 AS NVARCHAR(5)) END + N') collate DATABASE_DEFAULT;' + NCHAR(10) + NCHAR(13)
FROM sys.tables AS [Tables]
INNER JOIN sys.columns AS [Columns]
ON [Tables].object_id = [Columns].object_id
INNER JOIN sys.types AS [Types]
ON [Columns].system_type_id = [Types].system_type_id
AND is_user_defined = 0
AND [Types].name <> 'sysname'
LEFT OUTER JOIN sys.extended_properties AS [Properties]
ON [Properties].major_id = [Tables].object_id
AND [Properties].minor_id = [Columns].column_id
AND [Properties].name = 'MS_Description'
WHERE Columns.collation_name IS NOT NULL AND CHARINDEX(N'tbl' ,[Tables].name)=1
ORDER BY [Tables].name,[Columns].name EXEC(@zdrop_index_sql);
EXEC(@z_change_collation_sql);
EXEC(@zcreate_index_sql); SELECT @zdrop_index_sql + N' ' + @z_change_collation_sql + N' ' + @zcreate_index_sql;

  

更改collation批处理的更多相关文章

  1. Apache Beam,批处理和流式处理的融合!

    1. 概述 在本教程中,我们将介绍 Apache Beam 并探讨其基本概念. 我们将首先演示使用 Apache Beam 的用例和好处,然后介绍基本概念和术语.之后,我们将通过一个简单的例子来说明 ...

  2. jdbc中的细节

    JDBC 架构:JDBC 的 API 支持两层和三层处理模式进行数据库的访问,但是一般的JDBC架构由两层处理模式组成.(1)JDBC API:提供了应用程序对 JDBC 管理器的连接(2)JDBC ...

  3. 2018-2019-2 20165114《网络对抗技术》Exp4 恶意代码分析

    Exp4 恶意代码分析 目录 一.实验目标 (1)监控你自己系统的运行状态,看有没有可疑的程序在运行. (2)分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sys ...

  4. JDBC教程——检视阅读

    JDBC教程--检视阅读 参考 JDBC教程--W3Cschool JDBC教程--一点教程,有高级部分 JDBC教程--易百 JDBC入门教程 – 终极指南 略读 三层架构详解,JDBC在数据访问层 ...

  5. YOLO-V3实战(darknet)

    一. 准备工作 1)实验环境: darknet 是由 C 和 CUDA 开发的,不需要配置其他深度学习的框架(如,tensorflow.caffe 等),支持 CPU 和 GPU 运算,而且安装过程非 ...

  6. 剖析虚幻渲染体系(12)- 移动端专题Part 3(渲染优化)

    目录 12.6 移动端渲染优化 12.6.1 渲染管线优化 12.6.1.1 使用新特性 12.6.1.2 管线优化 12.6.1.3 带宽优化 12.6.2 资源优化 12.6.2.1 纹理优化 1 ...

  7. 批处理快速更改ip地址

    在各种网络中切换,windows更换ip地址步骤:  进入控制面板--网络和internet--网络和共享中心--理性适配器设置--然后找到网卡--进入属性--然后internet 协议--更改ip信 ...

  8. 批量更改数据库COLLATION

    企业内部有很多系统是繁体的,由于各方面的原因,公司目前正在实行简体化,但各系统中又有数据间的交换,所以系统只能一个一个的更改,以防同时出现过多的问题.由于原先数据库只能存储繁体,而原先已存在的数据则可 ...

  9. 使用DOS批处理更改IP地址

    有时候电脑在家需要自动获取IP,在公司需要手动填写IP,改来改去很麻烦,于是做一个批处理一键修改很方便: @echo off cls color 0A @echo off echo. echo === ...

随机推荐

  1. 国内不fq安装K8S三: 使用helm安装kubernet-dashboard

    目录 3 使用helm安装kubernet-dashboard 3.1 Helm的安装 3.2 使用Helm部署Nginx Ingress 3.3 使用Helm部署dashboard 3.4 使用He ...

  2. 海思3519A 移植ffmpeg

    文件下载 下载x264 git clone git://git.videolan.org/x264.git 下载ffmpeg git clone git://source.ffmpeg.org/ffm ...

  3. linux环境安装配置nginx

    安装依赖 yum install gcc yum install pcre-devel yum install zlib zlib-devel yum install openssl openssl- ...

  4. opencv 程序

    IplImage结构中的一个元素:struct _IplROI *roi; //图像感兴趣区域,当该值非空时,只对该区域进行处理 .   ROI :Region of Interest,表示感兴趣的区 ...

  5. WTL 9.0的变化 - atlapp.h

    忽然发现WTL更新到9.0.4140了,便对比了一下 8.1.12085. 先看看atlapp.h中有什么大的变动. 第61行: #if defined(_SYSINFOAPI_H_) &&a ...

  6. 第02节-BLE协议各层的形象化理解

    本篇博客根据韦大仙视频,整理所得. 先上框图: ATT层 从ATT开始看,在上篇博客讲的医院结构里面有个检验室,检验室可以得到各项结果,但是它并不知道这些结果代表什么含义.类比的在BLE协议栈里面,A ...

  7. 重新学习Spring注解——ICO

    02.组件注册-@Configuration&@Bean给容器中注册组件 03.组件注册-@ComponentScan-自动扫描组件&指定扫描规则 04.组件注册-自定义TypeFil ...

  8. 三星固态Dell版的960g的sm863a硬盘

    smart参数 CrystalDiskMark测试 AS SSD 测试 HD Tune Pro测试 DiskGenius查看 总结: 按我的测试,性能比sm865的还好,不知道咋回事,按三星给的参数这 ...

  9. 用bitSet做百万级ip去重

    如果直接将几百万数据仍到bitset,内存是否够用?实际测试,600万ip放到一个bitSet中,jvm内存会爆. 所以,就简单做了下分组,构建一个HashMap<String, BitSet& ...

  10. java 8 学习二(Lambda表达式)

    粗略的概括:lambda表达式主要用来实现“函数接口”中“唯一”的抽象方法用的. 他的特殊版有 方法引用,构造函数引用,用对应的接口实例接收即可. 可以把Lambda表达式理解为简洁地表示可传递的匿名 ...