小知识储备with nolockWITH (NOLOCK)相当于未提交读(READ UNCOMMITTED),意思是指定语句可以读取已由其他事务修改单尚未提交的行,在未提交读级别运行的事务,不会发出共享锁来防止其他事务修改当前事务读取的数据,也不会被排它锁阻塞,所以WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能;
SELECT COUNT(UserID) FROM EMPLOYEE WITH (NOLOCK) JOIN WORKING_GROUP WITH (NOLOCK) ON EMPLOYEE.UserID = WORKING_GROUP.UserID
String与StringBuilderString 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。
如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能,当修改 StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。
StringBuilder的Length属性是非只读的,
如果将Length属性设置为大于Capacity属性的值,则自动将Capacity属性更改为与Length 属性相同的值。如果将Length 属性设置为小于当前StringBuilder 对象内的字符串长度的值,则会缩短该字符串。
T-SQL 批处理批处理是作为一个逻辑单元的T-SQL语句。如果一条语句不能通过语法分析,那么不会运行任何语句。如果一条语句在运行时失败,那么产生错误的语句之前的语句都已经运行了。
GO语句必须自成一行,只有注释可以再同一行上。每个批处理单独发送到服务器。GO语句不是T-SQL命令,而是由各种SQL Server命令实用程序(如:Management Studio中的"查询"窗口)识别的命令。批处理常被用在某些事情不得不放在前面发生,或者不得不和其它事情分开的脚本中(一般ddl语句在同一个批处理里只能提交一个)
USE TestALTER TABLE TestTable ADD col3 intINSERT INTO TestTable (col1,col2,col3)VALUES (1,1,1)
以上代码在查询分析器中提示col3列不存在,通过一个go解决问题
USE TestALTER TABLE TestTable ADD col3 intGOINSERT INTO TestTable (col1,col2,col3)VALUES (1,1,1)
javaScript 注入攻击参考链接
HttpUtility.UrlEncode和Server.UrlEncode的区别1、HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法。2、Server是HttpServerUtility类的实例,是System.Web.UI.Page的属性。3、用HttpUtility.UrlEncode编码后的字符串和用Server.UrlEncode进行编码后的字符串对象不一样
Server.UrlEncode 可以根据你页面定义好的编码方式进行编码。
而 HttpUtility.UrlDecode则默认以utf8来编码。 不然你需要自己指定编码方式:
Encoding gb2312= Encoding.GetEncoding("gb2312");
string v5= HttpUtility.UrlEncode("温州", gb2312);
而 Server.UrlDecode则默认调用web.config中<globalization />节点中指定来编码
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" />
string v3= Server.UrlEncode("温州");
泛型的优势:类型安全算法重用更好的性能