insert ... select..语句的一个小技巧
摘要:使用 insert ... select..语句时,第一次执行时,插入动作会一次性插入select 出来的N条记录,而且后面的not exists 语句不会起作用.比如 有两个表 a 表(age int)和b(age int )表,其中b表有10条数据.当执行以下语句时: insert a select 1 from b where not exists(select 1 from a as swhere s.age = b.age) 一次性会录入10条数据
阅读全文
posted @
2011-12-13 16:46
babyblue
阅读(142)
推荐(0)
SQL 用convert转换时间格式
摘要:SELECT convert(varchar, getdate(), 100) -- mon dd yyyy hh:mmAM (or PM) -- Oct 2 2010 11:01AM SELECT convert(varchar, getdate(), 101) -- mm/dd/yyyy - 10/02/2010 SELECT convert(varchar, getdate(), 102) -- yyyy.mm.dd - 2010.10.02 ...
阅读全文
posted @
2011-11-28 13:16
babyblue
阅读(1289)
推荐(0)
在游标里,从B表查询数据插入A表,在插入之前做重复判断
摘要:@ti_id,@proc_id,@mac_id 是随游标变化的变量 t_ring 表结构为(sub_ring_id,........),其中sub_ring_id为主键 t_pmpt_cp表结构为(sub_ring_id,mac_id,proc_id,ti_id) ==========================游标循环开始=================================== @ti_id,@proc_id,@mac_id 被赋值SQL codeinsertinto t_pmpt_cp select sub_ring_id ,@mac_id,,@proc_id,@t...
阅读全文
posted @
2011-11-21 13:26
babyblue
阅读(133)
推荐(0)
配置 SQL Server 2005 远程调试存储过程
摘要:问题: 您工作的本机装有Visual Studio 2005,局域网中有一台SQL Server 2005数据库服务器,你想通过本机远程调试SQL Server 2005服务器上的存储过程。但是不知道如何配置或启用远程调试?希望这篇文章对您有用。对于数据库和Visual Studio在同一机器的存储过程调试,园子里已经有一篇译作说的很好了,可以去参考:在Visual Studio 2005中调试SQL Server 2005的存储过程,但是对于远程调试的配置,没有过多篇幅描述,所以本文就说说如何配置SQL Server 2005进行远程调试。 开始之前,我们先约定,运行Visiual Stud
阅读全文
posted @
2011-11-08 13:25
babyblue
阅读(173)
推荐(0)
在SQL Server中如何获得刚插入一条新记录的自动ID号
摘要:---------------------------------------------------------------使用[IDENT_CURRENT]用法:SELECTIDENT_CURRENT('TABLENAME')---------------------------------------------------------------SELECTIDENT_CURRENT('TableName')--返回当前的最后自动编号SELECTIDENT_INCR('TableName')--返回增量值SELECTIDENT_SEED(
阅读全文
posted @
2011-09-16 09:29
babyblue
阅读(201)
推荐(0)
获取自增主键最新插入的值
摘要:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生.
阅读全文
posted @
2011-08-26 16:37
babyblue
阅读(124)
推荐(0)
SQL SERVER:如何在声明游标的语句中,用变量做表名
摘要:-- 因为定义游标所用的表名是变量,所以采用EXEC(定义语句) 的方式来声明游标set @strsql = ' declare m_args cursor for select m_arg_id,tiaojian from '+ @mac_t_name +' where proc_id = ' + cast(@proc_id as nvarchar(10))--print @strsqlexec(@strsql)
阅读全文
posted @
2011-08-10 10:11
babyblue
阅读(674)
推荐(0)
sql server 判断一个变量为空
摘要:IF (@tmp_mh_value IS NULL) beginset @tmp_mh_value =0end
阅读全文
posted @
2011-08-02 18:15
babyblue
阅读(310)
推荐(0)
SQL 语句拼接小技巧
摘要:1。 sql语句的''内 前后都要留空格 ,杜绝 因字符连写造成的错误. 'select * from test '
阅读全文
posted @
2011-08-01 14:57
babyblue
阅读(132)
推荐(0)
case语句的用法小技巧
摘要:实用case语句时,有一个注意点: 在代入select查询语句的时候,case语句必须是常量,也就是说必须是确定了的.不能以 表a.字段B的形式代入,否则无效
阅读全文
posted @
2011-08-01 09:50
babyblue
阅读(268)
推荐(0)
在将 nvarchar 值 + 转换成数据类型 int 时失败错误的解决办法
摘要:当我们写存储过程语句的时候 如果遇到declare @sql nvarchar(200),@age intset @sql = 'selet * from user where age = ' + @age,这时就会报错.因为 我们要把 类似 '26' 这样的字符串拼接上去,而不是真正的把 26 拼接上去.所以会报错,解决方法 :set @sql = 'selet * from user where age = ' + cast(@ageas nvarchar(10))
阅读全文
posted @
2011-07-29 17:14
babyblue
阅读(6747)
推荐(0)
[转]SQL Server中获得EXEC后面的sql语句或者存储过程的返回值的方法
摘要:前言:在数据库程序开发的过程中,我们经常会碰到利用EXEC来执行一段需要返回某些值的sql语句(通常是构造动态sql语句时使用),或者在一个存储过程中利用EXEC调用另一个有返回值的存储过程(必须获得返回值),那么如何获得这些返回值呢?1,EXEC执行sql语句的情况declare@rsqlvarchar(250)declare@csqlvarchar(300)declare@rcnvarchar(500)declare@cstucountintdeclare@ccountintset@rsql='(selectClassroom_idfromEA_RoomTimewherezc=
阅读全文
posted @
2011-07-29 11:50
babyblue
阅读(165)
推荐(0)
存储过程中,字符串前面的N是什么意思?
摘要:如果你在N后面的单引号间只输入英文,那么把这个N给删了也没事。 N的作用就是如果你的操作系统是简体中文,你在N后面的单引号里输入了日本、德文、法文什么的,能保证你的字符串是正确的,这时N就要必写;反之如果N后面的单引号里只有英文和简体中文(长度不能超过十几K),那这个N写与不写是一样的。
阅读全文
posted @
2011-07-29 11:40
babyblue
阅读(243)
推荐(0)
sql server的SQL语句中单引号的问题
摘要:如果单引号里还想用单引号的话,则用双单引号来代替---- ''1''
阅读全文
posted @
2011-07-22 17:23
babyblue
阅读(134)
推荐(0)
SQL SERVER中游标的 @@fetch_status 的意义
摘要:@@fetch_status @@fetch_status是MSSQL的一个全局变量 其值有以下三种,分别表示三种不同含义:【返回类型integer】 - 0 FETCH 语句成功 -1 FETCH 语句失败或此行不在结果集中 -2 被提取的行不存在 @@fetch_status值的改变是通过fetch next from实现的 “FETCH NEXT FROM Cursor” 实例: 下面的示例用 @@FETCH_STATUS 控制在一个 WHILE 循环中的游标活动。 DECLARE Employee_Cursor CURSOR FOR SELECT LastName...
阅读全文
posted @
2011-07-19 18:14
babyblue
阅读(4215)
推荐(0)
如何判断一个游标是否存在?
摘要:1.其中'myformula'是目标游标名if cursor_status('global','myformula')=-3 and cursor_status('local','myformula')=-3beginprint '不存在'endelsebeginprint '存在'end2.其中cur是游标名if cursor_status( 'global ', 'cur ') -3begin deallocate cur end
阅读全文
posted @
2011-07-06 16:18
babyblue
阅读(268)
推荐(0)