sql server排序规则冲突问题解决
问题:
在项目数据库开发中,有时我们编写的脚本,在本机执行是没有问题的,但部署到服务器的时候,却在脚本运行时报错了。报错的中英文错误提示信息分别如下。
中文:无法解决 equal to 运算中 "SQL_Latin1_General_CP1_CI_AS" 和 "Chinese_PRC_CI_AS" 之间的排序规则冲突。
English:Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Chinese_PRC_CI_AS" in the equal to operation.
根源:
根据博主(微信公众号:SQL数据库编程,微信号:zhang502219048)实际工作中遇到的问题,概括为:如果本机是中文操作系统,而服务器是英文操作系统,而且脚本使用了临时表并且没有指定nvarcha或varchar文本字段的排序规则,并在join表连接中关联项目数据库的表(项目数据库默认排序规则为Chinese_PRC_CI_AS)的on关联条件中用到此文本字段,则会出现此问题。
解决方案:
方案1(不推荐):
在join连接的on条件字段中,对临时表指定排序规则。这种方法不推荐,因为如果有10个join临时表的语句,就得写10次,太过于繁琐。
select *
from #t1 a
inner join t2 b
on b.name = a.name collate Chinese_PRC_CI_AS
方案2(推荐):
在临时表的nvarcha或varchar文本字段定义中,增加指定排序规则,一劳永逸,不需要再在join连接的on条件中指定排序规则。
create table #t1
(
name nvarchar(50) collate Chinese_PRC_CI_AS
)
【转载请注明博文来源:https://www.cnblogs.com/zhang502219048/p/12992611.html】
原文地址:https://www.cnblogs.com/zhang502219048/p/12992611.html
- 制作WordPress侧边栏“博客统计”小工具并集成在主题中的方法
- Struts2、Spring MVC4 框架下的ajax统一异常处理
- 前11月网游收入1341亿元同比增超两成 你贡献了多少?
- struts2: config-browser-plugin 与 convention-plugin 学习
- 千万级规模高性能、高并发的网络架构经验分享
- UE4新手之编程指南
- redis 学习笔记(5)-Spring与Jedis的集成
- Linq to SQL 查询Tips
- SQLite 预写式日志
- java调用.net asmx / wcf
- mybatis3.2.8 与 hibernate4.3.6 混用
- mybatis的物理分页:mybatis-paginator
- 使用 WMI 进行诊断WCF
- java:快速文件分割及合并
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- MySQL MHA部署添加Linux/Unix基本信息至Django中
- 记一次innobackupex导致的从库无法同步的问题
- mysqlbinlog命令详解记一次有函数的标量子查询导致的查询缓慢
- ctfshow红包题-web
- 微信支付一面(C++后台)
- 强网杯-随便注
- LeetCode 1547. Minimum Cost to Cut a Stick(动态规划)
- 管道符漏洞
- 06-STM32+ESP8266+AIR202远程升级方案-移植STM32+ESP8266实现利用http或https远程更新STM32程序到自己的项目(定时访问升级,备份升级)
- 反射
- 记一次sys 数据库的修复
- 使用Django管理数据库表
- php学习day3
- mysqlbinlog命令详解
- XtraBackup工具详解 Part 9 innobackupex命令总结