SQL Server查询中处理特殊字符

我们都知道SQL Server查询过程中,单引号“’”是特殊字符,所以在查询的时候要转换成双单引号“””。 但这只是特殊字符的一个,在实际项目中,发现对于like操作还有以下特殊字符:下划线“_”,百分号“%”,方括号“[]”以及尖号“^”。 其用途如下: 下划线:用于代替一个任意字符(相当于正则表达式中的 ? ) 百分号:用于代替任意数目的任意字符(相当于正则表达式中的 * ) 方括号:用于转义(事实上只有左方括号用于转义,右方括号使用最近优先原则匹配最近的左方括号) 尖号:用于排除一些字符进行匹配(这个与正则表达式中的一样)以下是一些匹配的举例,需要说明的是,只有like操作才有这些特殊字符,=操作是没有的。 a_b… a[_]b% a%b… a[%]b% a[b… a[[]b% a]b… a]b% a[]b… a[[]]b% a[^]b… a[[][^]]b% a[^^]b… a[[][^][^]]b% 在实际进行处理的时候,对于=操作,我们一般只需要如此替换: ‘ -> ” 对于like操作,需要进行以下替换(注意顺序也很重要) [ -> [[] (这个必须是第一个替换的!!) % -> [%] (这里%是指希望匹配的字符本身包括的%而不是专门用于匹配的通配符) _ […]

奇怪的大小写问题

Msg 4104, Level 16, State 1, Line 1 无法绑定由多个部分组成的标识符 “c.CONSTRAINT_SCHEMA”。 这个SQL在有些库执行没有问题,在有些库执行就报错,奇怪了,仔细看,主要是大小写不一样,sqlserver默认安装是不区分大小写的啊,看来以后写SQL得注意,不管sqlserver大小写区不区分,我自己也还是得区分的。

SQL Server 中 DELETE 与 TRUNCATE TABLE

清空表数据的两种方法:DELETE 与 TRUNCATE TABLE   在SQL Server中,每一个操作SQL Server都会做一定的Log记录,比较说Insert,Update 或者Delete事件,每一个操作都会锁定行,然后对行操作做一些记录。 当一个表中的数据行很多的时候,几十万条或更多,那么删除的时候TRUNCATE TABLE则更快,它是一种快速、无日志记录的方法。TRUNCATE TABLE 与不含有 WHERE 子句的 DELETE 语句在功能上相同。但是,TRUNCATE TABLE 速度更快,并且使用更少的系统资源和事务日志资源。 与 DELETE 语句相比,TRUNCATE TABLE 具有以下优点: 所用的事务日志空间较少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放用于存储表数据的数据页来删除数据,并且在事务日志中只记录页释放。 使用的锁通常较少。 当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。TRUNCATE TABLE 始终锁定表和页,而不是锁定各行。 如无例外,在表中不会留有任何页。 执行 DELETE 语句后,表仍会包含空页。例如,必须至少使用一个排他 (LCK_M_X) […]

SQLServer2005的专用管理员连接(DAC)

什么是专用管理员连接? SQL Server 2005 为管理员提供了一种特殊的诊断连接,以供在无法与服务器建立标准连接时使用。 专用管理员连接有什么用? 即使在 SQL Server 不响应标准连接请求时,管理员也可以使用这种连接访问 SQL Server,以便执行诊断查询并解决问题。 管理员可以通过 DAC 访问正在运行的 SQL Server Database Engine 实例来排除服务器的故障(即使该服务器已停止响应其他客户端连接)。 专用管理员连接使用限制 (1)为了保证有可用的连接资源,每个 SQL Server 实例只允许使用一个 DAC。如果 DAC 连接已经激活,则通过 DAC 进行连接的任何新请求都将被拒绝,并出现错误 17810。 (2)DAC 最初尝试连接到与登录帐户关联的默认数据库。连接成功后,可以连接到 master 数据库。如果默认数据库离线或不可用,则连接返回错误 4060。但是,如果使用以下命令覆盖默认数据库,改为连接到 master 数据库,则连接会成功: sqlcmd –A […]

远程桌面T人

 mstsc /console /v:IP:端口 例如:mstsc /console /v:192.168.0.1:3389 远程桌面连接(MSTSC.EXE)可以指定一些参数,实现特殊的功能: 1、/console 连接到服务期的控制台会话,只对XP和2003有效,XP的远程协助其实就是这样实现的,使用这个参数可以 直接接管服务器的控制台会话,即使当时已经有用户在使用 2、/v 指定要连接的服务器和端口,默认3389端口可以不写 3、/f 指定全屏幕模式连接 4、/w: 指定远程桌面屏幕的宽度 5、/h: 指定远程桌面屏幕的高度 6、/edit rdpfile.rdp 编辑指定的.rdp配置文件 7、rpdfile.rdp 直接提供一个预先配置好的连接配置文件 8、/? 获取上面的帮助信息