问题:使用SQLServer2008R2的“sp_send_dbmail”发邮件,当邮件标题、内容中有中文时就会变成“?”。

分析: 经过分析是因为安装数据库的排序规则 “ SQL_Latin1_General_CP1_CI_AS ”导致的。

需求:安装数据库时,将字符集安装成了“SQL_Latin1_General_CP1_CI_AS”,现在需要将其更改为“Chinese_PRC_CI_AS”。

提示:使用下列脚本可以查询到当前数据库的排序规则(注意:排序规则在安装数据库时是可以选择的,大家常常会忽略。)

方法:重新生成系统数据库 ,然后还原配置信息。

提示:这种方法是有局限性的,重新生成 master、model、msdb 和 tempdb 系统数据库时,将删除这些数据库,然后在其原位置重新创建。 如果在重新生成语句中指定了新排序规则,则将使用该排序规则设置创建系统数据库。 用户对这些数据库所做的所有修改都会丢失。 例如,您在 master 数据库中的用户定义对象、在 msdb 中的预定作业或在 model 数据库中对默认数据库设置的更改都会丢失。

-----------------------------------------------------------------------------------

前期准备

          提示:如没有重要配置信息可以略过前期准备,如之前配置过了数据库邮件配置,则可以在重新生成系统数据库后再重新配置。

在重新生成系统数据库之前执行下列任务,以确保可以将系统数据库还原至它们的当前设置。

  1. 记录所有服务器范围的配置值。
    SELECT * FROM sys.configurations;
  2. 记录所有应用到 SQL Server 实例和当前排序规则的 Service Pack 和修补程序。 重新生成系统数据库后必须重新应用这些更新。
    SELECT
    SERVERPROPERTY('ProductVersion ') AS ProductVersion,
    SERVERPROPERTY('ProductLevel') AS ProductLevel,
    SERVERPROPERTY('ResourceVersion') AS ResourceVersion,
    SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime,
    SERVERPROPERTY('Collation') AS Collation;
  1. 记录系统数据库的所有数据文件和日志文件的当前位置。 重新生成系统数据库会将所有系统数据库安装到其原位置。 如果已将系统数据库数据文件或日志文件移动到其他位置,则必须再次移动这些文件。
    SELECT name, physical_name AS current_file_location
    FROM sys.master_files
    WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
  1. 如果将 SQL Server 的实例配置为复制分发服务器,请找到该分发数据库的当前备份。
  2. 确保您有重新生成系统数据库的相应权限。 必须是 sysadmin 固定服务器角色的成员才能执行此操作。 有关详细信息,请参阅服务器级别角色。
  1. 将原数据库的帐号、JOB等与系统数据库相关的信息全部备份起来(可以先生成相应的脚本),分离掉所有用户库。

-----------------------------------------------------------------------------------
操作方法:

Step1、先解压好SQLServer的安装文件,如:解压在D盘的“SQL Server 2008R2 x86 x64”文件夹下;

Step2、开始-->运行输入“CMD”进入CMD模式,在命令行下进入SQL Server 安装文件所在目录(setup.exe文件所在目录,即“SQL Server 2008R2 x86 x64”目录下)

Step3、运行命令:Net stop mssqlserver  关闭mssqlserver服务,当提示成功后执行下一步;

Step4、执行如下命令:Setup /QUIET /ACTION=REBUILDDATABASE /instancename=mssqlserver /SQLSYSADMINACCOUNTS=administrator /sapwd=XXXXXX /sqlcollation=Chinese_PRC_CI_AS

提示:Step4执行的时间可能会有一些长,只要不报错,请安静等待命令行提示符出现,此时说明已经执行成功了;

参数说明:

参数名称

说明

/QUIET 或 /Q

指定在没有任何用户界面的情况下运行安装程序。

/ACTION=REBUILDDATABASE

指定安装程序将重新创建系统数据库。

/INSTANCENAME=InstanceName

SQL Server 实例的名称。 对于默认实例,请输入 MSSQLSERVER。

/SQLSYSADMINACCOUNTS=accounts

指当前操作系统的管理员账号

指定要添加到 sysadmin 固定服务器角色中的 Windows 组或单个帐户。 指定多个帐户时,请用空格将帐户隔开。 例如,请输入 BUILTIN\Administrators MyDomain\MyUser。 当您在帐户名称内指定包含空格的帐户时,用双引号将该帐户引起来。 例如,输入 NT AUTHORITY\SYSTEM。

[ /SAPWD=StrongPassword ]

指定 SQL Server sa 帐户的密码。 如果实例使用混合身份验证(SQL Server 和 Windows 身份验证)模式,则此参数是必需的。

安全说明

sa 帐户是一个广为人知的 SQL Server 帐户,并且经常成为恶意用户的攻击目标。 因此,为 sa 登录名使用强密码非常重要。

不要为 Windows 身份验证模式指定此参数。

[ /SQLCOLLATION=CollationName ]

指定新服务器级排序规则。 此参数可选。 如果没有指定,则使用服务器的当前排序规则。

重要提示

更改服务器级排序规则不会更改现有用户数据库的排序规则。 默认情况下,所有新创建的用户数据库都将使用新排序规则。

有关详细信息,请参阅设置或更改服务器排序规则。

Step5、运行命令:Net start mssqlserver 开启mssqlserver服务,当提示成功后完成操作,即可执行下一步进行验证。

Step6、执行如下脚本查看collation列是否已经被修改为“Chinese_PRC_CI_AS”。

Step7、重新配置数据库邮件配置。

Step8、如使用下图中的脚本发送测试邮件。

解决使用SQLServer2008R2的“sp_send_dbmail”发邮件,当邮件标题、内容中有中文时就会变成“?”的问题相关推荐

  1. 成功解决pillow模块内生成的非UTF-8格式(比如label中有汉字时)

    成功解决pillow模块内生成的非UTF-8格式(比如label中有汉字时) 目录 解决问题 解决方法 解决问题 解决pillow模块内生成的非UTF-8格式(比如label中有汉字时),需要进行格式 ...

  2. mysql字段中有问号_Mysql数据库,表中有中文时,select出来好多问号(?)的解决方法...

    首先,我用的是zip包的Mysql,直接解压使用的,网上说修改my.ini或者my.cnf在我机器上根本就找不到.但是my.ini这个东西是可以自己添加的.将mysql目录中的my-default.i ...

  3. ckeditor:复制内容到ckeditor时,只保留文本,忽略其样式解决方法

    ckeditor:复制内容到ckeditor时,只保留文本,忽略其样式解决方法 参考文章: (1)ckeditor:复制内容到ckeditor时,只保留文本,忽略其样式解决方法 (2)https:// ...

  4. 邮箱大师发送邮件服务器连接失败,网易邮箱大师退信的解决方法分享 网易邮箱大师发不了邮件的解决方法介绍...

    网易邮箱大师退信的解决方法分享 1.要发送邮件的地址写错了,导致邮件不能寄出: 2.邮箱被盗,是别人用你的邮箱发送垃圾邮件: 3.可能是设置自动回复的原因,网易的系统邮件不接受自动回复邮件. 解决方法 ...

  5. 如何发好外贸邮件,看亚马逊SES邮件服务商怎么说?

    对于外贸企业而言,多少都遇到过账号被封,被限制的问题.或者邮件送达率低,进垃圾箱多,客户回复率低,没有达到推广预期!而,是否思考过,问题到底出现在哪里? 像亚马逊SES邮件服务商,发邮件的硬核是有的, ...

  6. 解决ios设备自带邮箱只能接收邮件不能发送邮件问题的方法

    解决ios设备自带邮箱只能接收邮件不能发送邮件问题的方法 解决的办法:邮件\通讯录\日历 一: (1)用手机网页登录QQ邮箱网页版 (2)登录后,拉到下面,设置-账户,选择这个号码的作为默认发信帐号– ...

  7. 服务器发不了邮件,发邮件服务器-如何发邮件?为什么发不出去?服务器是什么?发邮件时,信息要服务器 爱问知识人...

    Outlook Express邮箱使用全攻略(转自云之渊论坛: ) 1.防止OE发送乱码正确的方法是: 首先,在邮件编辑窗口中,用鼠标单击菜单栏中的"格式"菜单,并从弹出的下拉菜单 ...

  8. 163邮箱收不到mdaemon 11发过来的邮件

    163邮箱收不到mdaemon 11发过来的邮件(已解决) Wed 2011-02-23 17:03:35: Parsing message <xxxxxxxxxxxxxxxxxxxxxxxx/ ...

  9. 用PHP写一个每天给女朋友发暖心邮件的脚本

    偶然逛githu发现有一个用node写的一个每天定时给女友发一个暖心小邮件,运用到的技术有邮件.爬虫和定时 我就产生了浓厚的兴趣,这个PHP可以完成,随即动手写了一个PHP版本的 环境需求(高版本环境 ...

最新文章

  1. main方法_你知道为什么Java的main方法必须是public static void?
  2. python里的类与一切事物都是对象
  3. mysql隐式锁定辅助索引_当Mysql - InnoDB行锁遇到复合主键和多列索引-Go语言中文社区...
  4. QT的QGLFunctions类的使用
  5. redis -memcahe-mongo资料-windows定时重启计划
  6. 小程序未来将有广阔的发展前景
  7. mysql 性能问题_mysql性能问题
  8. Java对象类型转换
  9. 整理了vue2.0的思维导图
  10. 工程项目成本/进度综合控制方法及应用
  11. CorePlot-饼状体
  12. [转载] python numpy矩阵运算加速器 NumExpr
  13. Android4火狐,Android版火狐4正式发布
  14. C++ GUID和string转化函数【转载】
  15. 大数据数据仓库-简介
  16. 如何使用Mediawiki搭建个人wiki系统、以及wiki的部分基本操作和设置
  17. 乱斗西游小白龙技能预设释放顺序
  18. 洛谷P1425python题解
  19. MM买裤子杀价全过程
  20. html制作考卷,手把手教你如何制作试卷模板

热门文章

  1. MFC ListControl控件使用InsertItem()函数插入新的列表项后不能显示列表项名称
  2. 上海施陌格信息科技有限公司---公司简介
  3. java ee open course_Java高端培训系列视频(Java jsp Servlet JavaEE video course)
  4. linux mysql解压完_【Linux】CentOS 7.4 安装 MySQL 8.0.12 解压版
  5. 三星android测试机,三星远程真机调试介绍
  6. 微信小程序 页面和自定义组件 命名规范
  7. 教育部原副部长:大学千篇一律 需个性化
  8. Microsoft Office 2003 简体中文正式企业版
  9. 【数据结构】PTA C++顺序存储结构实现多项式存储与处理
  10. 对mysql专业技能描述_工程师简历专业技能怎么写