文章分类 -  SQL Server

摘要:SQL中的CASE WHEN使用 Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能。简单Case函数的 阅读全文
posted @ 2010-09-29 17:37 xfyn 编辑
摘要:利用SELECT * INTO T1 FROM T2加上WHERE 1<>1可以将表结构T2复制到T1中,不包含任何T2中的数据当然也可以复制T2所有信息,只要去掉WHERE或者改为WHERE 1=1 阅读全文
posted @ 2010-09-29 14:47 xfyn 编辑
摘要:1.INSERT INTO SELECT语句语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。2.SELECT INTO FROM语句 语句形式为:SELECT vale1, value2 into Table2 from Table1 要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。selec 阅读全文
posted @ 2010-09-29 14:43 xfyn 编辑
摘要:1=1永真条件,一般用于构造动态SQL语句,"SELECT ... FROM ... WHERE 1=1 "+动态构造条件子句。where 1=1就是说明条件成立比如说 select * into 新表 from 旧表 where 1=0 这个 where 语句就是说明条件不成立 这个SQL语句作用就是 只复制表的结构到新表 不带任何数据 阅读全文
posted @ 2010-09-28 10:06 xfyn 编辑
摘要:删除记录时总是出现错误。。DELETE 语句与 REFERENCE 约束"FK__reply__word_id__7E6CC920"冲突。该冲突发生于数据库"guest",表"dbo.reply", column 'word_id'。后来查看才知道:外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能插入。 (2)更新时,不能改为主键表中没有的值。 (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。(4)更新主键记录时,同样有级联更新和拒绝执行的选择。//备 阅读全文
posted @ 2010-09-25 11:55 xfyn 编辑
摘要:在项目中见到这样的SQL语句.代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1 UPDATE WZ_INVENTORY_CURRENT2 SET INVENTORY_STATUS = 'N', 3 SO_ID = NULL,4 SO_DETAIL_ID = NULL,5 PICKING_ID = NULL,6 PICKING_DETAIL_ID = NULL,7 PICKING_NO = NULL8 FROM WZ_SO 阅读全文
posted @ 2010-09-20 09:03 xfyn 编辑
摘要:背景:目前参与的一个项目,我发现一个问题,就是大家在写查询时,为了性能,往往会在表后面加一个nolock,或者是with(nolock),其目的就是查询是不锁定表,从而达到提高查询速度的目的。这点可能很多朋友在做开发时都会遇到,不过如果说系统中的每个查询语句中的表都加上nolock,您是否同意这么做呢?在回答这个问题前我先说下几个问题: 什么是并发访问:同一时间有多个用户访问同一资源,并发用户中如果有用户对资源做了修改,此时就会对其它用户产生某些不利的影响,例如: 1:脏读,一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记录,然后,第一个用户放弃修改,数据回到修改之前,这两 阅读全文
posted @ 2010-09-19 16:33 xfyn 编辑
摘要:控制由连接发出的所有 Microsoft® SQL Server™ SELECT 语句的默认事务锁定行为。语法SET TRANSACTION ISOLATION LEVEL{ READ COMMITTED| READ UNCOMMITTED| REPEATABLE READ| SERIALIZABLE }参数READ COMMITTED指定在读取数据时控制共享锁以避免脏读,但数据可在事务结束前更改,从而产生不可重复读取或幻像数据。该选项是 SQL Server 的默认值。READ UNCOMMITTED执行脏读或 0 级隔离锁定,这表示不发出共享锁,也不接受排它锁。当设置该选项时,可 阅读全文
posted @ 2010-09-19 16:33 xfyn 编辑
摘要:REPLICATE REPLICATE (Transact-SQL) 将字串值重复指定的次数 使用方法 REPLICATE ( string_expression ,integer_expression ) REPLICATE(字符串,重复的次数) 说明: 返回字符的长度仅受内存的限制,只要内存足够,可以任意长的字符串。 示例: REPLICATE('重复',3) 输出结果为: 重复重复重复 【值得注意的是当 integer_expression 值为负值,则返回NULL 】 阅读全文
posted @ 2010-09-15 14:38 xfyn 编辑
摘要:SET XACT_ABORT指定当 Transact-SQL 语句产生运行时错误时,Microsoft® SQL Server™ 是否自动回滚当前事务。语法SET XACT_ABORT { ON | OFF }注释当 SET XACT_ABORT 为 ON 时,如果 Transact-SQL 语句产生运行时错误,整个事务将终止并回滚。为 OFF 时,只回滚产生错误的 Transact-SQL 语句,而事务将继续进行处理。编译错误(如语法错误)不受 SET XACT_ABORT 的影响。对于大多数 OLE DB 提供程序(包括 SQL Server),隐性或显式事务中的数据修改语句必须 阅读全文
posted @ 2010-09-15 14:07 xfyn 编辑
摘要:DateAdd DateAdd函数 返回 返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。 语法 DateAdd(interval, number, date) DateAdd 函数语法中有下列命名参数: 部分 描述 interval 必要。字符串表达式,是所要加上去的时间间隔。 number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。 date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。 设置 interval 参数具有以下设定值: 设置 描述 yyyy 阅读全文
posted @ 2010-09-15 11:51 xfyn 编辑
摘要:一般存入数据库中的时间格式为yyyy-mm-ddhh:mm:ss如果要转换为yyyy-mm-dd短日期格式.可以使用convert函数.下面是sqlserver帮助中关于convert函数的声明:使用 CONVERT:CONVERT (data_type[(length)],expression[,style])参数expression是任何有效的 Microsoft® SQL Server™ 表达式。data_type目标系统所提供的数据类型,包括bigint和sql_variant。不能使用用户定义的数据类型。lengthnchar、nvarchar、char、varchar、b 阅读全文
posted @ 2010-09-15 11:42 xfyn 编辑
摘要:SET NOCOUNT ON/OFF当 SET NOCOUNT 为 ON 时,不返回计数(表示受Transact-SQL 语句影响的行数)。 当 SET NOCOUNT 为 OFF 时,返回计数(默认为OFF)。即使当 SET NOCOUNT 为 ON 时,也更新 @@ROWCOUNT 函数。当 SET NOCOUNT 为 ON 时,将不给客户端发送存储过程中的每个语句的 DONE_IN_PROC 信息。当使用 Microsoft? SQL Server? 提供的实用工具执行查询时,在 Transact-SQL 语句(如 SELECT、INSERT、UPDATE 和 DELETE)结束时将不会 阅读全文
posted @ 2010-09-14 17:58 xfyn 编辑
摘要:SQL中的CASE WHEN使用 Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能。简单Case函数的 阅读全文
posted @ 2010-09-13 15:09 xfyn 编辑
摘要:ISNULL使用指定的替换值替换 NULL。语法ISNULL ( check_expression , replacement_value )参数 check_expression 将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。 replacement_value 在 check_expression 为 NULL时将返回的表达式。replacement_value 必须与 check_expresssion 具有相同的类型。 返回类型 返回与 check_expression 相同的类型。注释 如果 check_expression 不为 NULL,那 阅读全文
posted @ 2010-09-13 15:01 xfyn 编辑