posts - 5,  comments - 3,  trackbacks - 0

mssql中大小写的区分

文章关键字:|mssql|大小写|区分|服务器|排序|规则|参数|

1.--区分大小写
--注意:"collate Chinese_PRC_CS_AI"要放在字符串条件后面
select * from a where col=’AbCdE’ collate Chinese_PRC_CS_AI and Id>10--区分大小写 

select * from a where col=’abCdE’ collate Chinese_PRC_CI_AI and Id>10--不区分大小写 

 

2.如果想让服务器上所有的存储表都区分大小写就需要在安装服务器时设置服务器的排序规则
博客园或者 运行

alter database testgrass collate Chinese_PRC_CS_AI

3.如果修改整个服务器的默认排序规则,用Rebuildm.exe重建master库

SQL Server\\80\\Tools\\Binn\\rebuildm.exe

4.修改某一列大小写区分

1).先打开oblog数据库的oblog_user表,右键点击,选设计表

2).找到username字段

3).然后找到下面的排序规则

4).在弹出的对话框中选择区分大小写

参考:

我们在create table时经常会碰到这样的语句,例如:

password nvarchar(10)collate chinese_prc_ci_as null,

那它到底是什么意思呢?不妨看看下面:

首先,collate是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影。语法是:

collate collation_name

collation_name ::={windows_collation_name}|{sql_collation_name}

参数collate_name是应用于表达式、列定义或数据库定义的排序规则的名称。collation_name 可以只是指定的 Windows_collation_name 或SQL_collation_name。

Windows_collation_name 是 Windows 排序规则的排序规则名称。参见 Windows 排序规则名称。

SQL_collation_name 是 SQL 排序规则的排序规则名称。参见 SQL 排序规则名称。

下面简单介绍一下排序规则:

什么叫排序规则呢?MS是这样描述的:\"在 Microsoft SQL Server 2000 中,字符串的物理存储由排序规则控制。排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则。\"

在查询分析器内执行下面语句,可以得到SQL SERVER支持的所有排序规则。

select * from ::fn_helpcollations()

排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。如:

Chinese_PRC_CS_AI_WS

前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。

排序规则的后半部份即后缀 含义:

_BIN 二进制排序

_CI(CS) 是否区分大小写,CI不区分,CS区分

_AI(AS) 是否区分重音,AI不区分,AS区分

_KI(KS) 是否区分假名类型,KI不区分,KS区分  [Page]

_WI(WS) 是否区分宽度 WI不区分,WS区分

区分大小写:如果想让比较将大写字母和小写字母视为不等,请选择该选项。

区分重音:如果想让比较将重音和非重音字母视为不等,请选择该选项。如果选择该选项,比较还将重音不同的字母视为不等。

区分假名:如果想让比较将片假名和平假名日语音节视为不等,请选择该选项。

区分宽度:如果想让比较将半角字符和全角字符视为不等,请选择该选项。

原文地址:http://www.evget.com/zh-CN/Info/ReadInfo.aspx?id=9219
posted @ 2009-12-25 15:02 icewindq 阅读(176) 评论(0) 编辑

ASP.NET预编译更新问题

     唉,今天客户又打电话过来尔抱怨说“又有页面出错了,不能老这样呀,这个问题你必须查清楚,然后给我一个答复!!”,具体的错误信息如下 :

 未能加载文件或程序集“App_Web_g0e7hiww,   Version=0.0.0.0,   Culture=neutral,   PublicKeyToken=null”或它的某一个依赖项。系统找不到指定的文件。  

      对于这个问题,之前也是有出现过,所以客户显得有点不耐烦了。一个解决办法就是把对应的页面文件打开再保存一下就可以了,但这个好像有点治标不治本,

因为我们网站发布时是使用单页程序集发布的(就是一个页面对应一个dll文件,这个更新时只要更新对应改动过的页面就可以),倒,这个问题出得有点莫名其妙。
      网上找了下资料,有又一种解决办法:在web.config里配置成这样子: <compilation debug="true" batch="false"> ,只是这种方法不知是不是治本的方案,这还有待时间的证明。
      唉,问题的真正原因还是没找到,客户那边只好应付说更新时缓存没清掉。
      这里也出现相同的问题,大家可以看一下:http://topic.csdn.net/t/20060717/16/4885830.html

  

SQL 2005标识列继承问题

      在点击查看列表时,出现了以下一个异常:

 无法使用 SELECT INTO 语句将标识列添加到表 '#TMP_FB37F2DD_6103_414A_931B_6EB0D9664369',该表的列 'ID' 已继承了标识属性。

这个主要我们在取数据时,用到了一个分页的存储过程,将一页的数据插入到临时表,代码片断如下:
Code

此时这个临时表#TMP_39F71656_CFF0_4FAA_BE24_9E62B12488E1可能会有两个标识列:ROWID和ID(表 T_forum_speaker的主键),根据微软的官方文档,这是不允许,如下所示:

将现有标识列选入新表时,新列将继承 IDENTITY 属性,除非下列条件中的一个成立
·SELECT 语句包含联接、GROUP BY 子句或聚合函数。
·多个 SELECT 语句由 UNION 联接。
·标识列在选择列表内多次列出。
·标识列是表达式的一部分。
·标识列来自远程数据源。

请参阅http://technet.microsoft.com/zh-cn/library/ms188029.aspx

可是,我们这个系统之前都运行得好好的,忽然想起前天因为要统计各个表占用的空间而修改了数据库的属性里的“兼容级别”,会不会这个引起的了?好,把数据库的属性设置还原过去。再访问一下页面,呵呵,OK了!!
     数据库-->属性-->选项-->兼容级别:改为原来的“SQL Server 2000(80) ”

估计在兼容级别(SQL Server 2000)下,新列不会继承IDENTITY属性,呵呵,这个还有待去验证。呵呵,肚子有点饿了,去吃饭了,下次再验证了

posted @ 2009-11-12 18:50 icewindq 阅读(1190) 评论(2) 编辑

        今天在利用Jmail发送带附件的邮件时,一直收不到附件,而是得到一些“乱码”如下:This is a multipart message in MIME format. ----NEXT_BM_AEB3968967D044DC9E208D04088C60B4 Content-Type: text/html; charset="GB2312" Content-Transfer-Encoding: Quoted-Printable sdfdd ----NEXT_BM_AEB3968967D044DC9E208D04088C60B4 Content-Type: application/octet-stream; name="=?GB2312?Q?12d95384-576f-424f-bf15-f8e2397e2791=2EJPG?=" Content-Transfer-Encoding: base64 Content-Description: =?GB2312?Q?12d95384-576f-424f-bf15-f8e2397e2791=2EJPG?= Content-Disposition: inline; filename="=?GB2312?Q?12d95384-576f-424f-bf15-f8e2397e2791=2EJPG?=" Content-ID: <180B140729C34A5696C14ABD11C827A1> /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsL  ....

       很显示是被编码过了,因此马上网上百度谷歌一下,首先找到了添加附件的几种方法:

1. AddAttachment(FileName, isInline, ContentType) : String为邮件添加一个文件型的附件。如果Inline 属性被设置为true,这个附件就是一个可嵌入的附件,使用addAttachment()方法可返回content id,这在发送HTML 邮件时是非常有用的。例:jmail.AddAttachment("c:\autoexec.bat") jmail.AddAttachment("myImage.gif",TRUE) &&可嵌入的附件
2.AddURLAttachment(bstrURL, bstrAttachAs, isInline, bstrAuth) : String从指定的URL 下载文件并添加为附件。第二个参数“AttachAs”用来更改添加为附件的文件的文件名,如果Inline 属性被设置为true,这个附件就是一个可嵌入的附件,使用ddAttachment()方法可返回content id,这在发送HTML 邮件时是非常有用的。最后一个参数为可选项,是当服务器需要身份验证时使用的。例 jmail.AddURLAttachment("http://download.dimac.net/jmail/w3jmail4.exe","w3jmail4.exe")jmail.AddURLAttachment"http://download.dimac.net/jmail/w3jmail4.exe", "w3jmail4.exe",false, "myUserName:myPassword")jmail.AddURLAttachment"http://images.dimac.net/dimaclogo.gif","dimaclogo.gif",true )

测了一下,好像跟两个方法没什么关系。后来在网上有人说把Message.ContentType ="text/html"设置去掉(就是不要去设置ContentType属性),试了一下,还真发送成功了。唉,算不算Jmail的一个Bug了?

好了,现在总结一下:要发送附件时,不能设置ContentType属性(ContentType的默认值是text/plain),这时如果要发送HTML格式的邮件可以通过设置HTMLBody属性。

希望这个对大家有用。

posted @ 2009-11-05 18:25 icewindq 阅读(671) 评论(0) 编辑

 

      一直没弄懂这个图片的像素与分辨率的关系,因而今天查了些资料,看了几篇文章。
       认识图片大小/像素/分辨率之间有什么关系?
       关于数码相机的像素、分辨率和图片大小的概念

      但是,有一个疑问:两张像素数一样(即宽高的像素数一样),分辨率不一样的图片有什么差别了?在电脑看好像没什么差不多(图片质量)。有谁能给个解答。

posted @ 2009-11-03 19:06 icewindq 阅读(154) 评论(0) 编辑

  从SQL Server 2005 Express升级而来的实例,用起来总感觉怪怪的,很多功能好像都停留在Express版本上。因此想把SQL Server 2005完全卸载后再重装。
参考文章:如何手动卸载 SQL Server 2005 实例错误代码-2147024893

步骤 1:确保 Microsoft SQL Server 安装支持文件组件已安装

在“添加或删除程序”中,确保“Microsoft SQL Server 安装支持文件”出现在已安装的程序列表中。如果“Microsoft SQL Server 安装支持文件”出现在该列表中,请转到“步骤 2:运行命令以卸载 SQL Server 组件”一节。

如果“Microsoft SQL Server 安装支持文件”没有出现在该列表中,请先安装该组件,然后再继续。要安装该组件,请按照下列步骤操作:

  1. 找到原始的 SQL Server 2005 安装介质。
  2. 要安装支持文件,请双击“Servers\setup\sqlsupport.msi”文件。

注意:在“步骤 5:卸载 Microsoft SQL Server 安装支持文件组件”一节中,将卸载该组件。

步骤 2:运行命令以卸载 SQL Server 组件

注意:卸载Reporting Services时可能出现的问题,安装程序无法读取 IIsMimeMap 表

解决方法
1.停止IIS Admin服务和Word Wide Web Publishing服务
2.将IIS Admin的启动类型改为“禁用”(不然的话,卸载过程IIS Admin会被卸载程序启动起来,还会出现同样的问题)
在命令提示符下,运行下面的命令:

"%ProgramFiles%\Microsoft SQL Server\90\Setup Bootstrap\ARPWrapper.exe /Remove"

勾选你要删除的组件。

注意:“添加或删除程序”还会使用“/Remove”选项运行 ARPWrapper.exe 程序。但是,对 ARPWrapper.exe 程序的引用可能已删除。

如果您已卸载 SQL Server Reporting Services,则必须执行下列任务:

  • 删除 Reporting Services 虚拟目录
    使用 Microsoft Internet 信息服务 (IIS) 管理器删除以下虚拟目录:
    • ReportServer[$InstanceName
    • Reports[$InstanceName
  • 删除 ReportServer 应用程序池
    使用 IIS Manager 删除 ReportServer 应用程序池。
posted @ 2009-10-19 14:32 icewindq 阅读(840) 评论(0) 编辑
昵称:icewindq
园龄:2年4个月
粉丝:0
关注:10

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 

常用链接

我的标签

随笔分类

随笔档案

文章分类

Mobile

Other

最新评论