随笔分类 -  数据库技术

上一页 1 2 3 4
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) 推荐(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) 推荐(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) 推荐(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) 推荐(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) 推荐(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) 推荐(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) 推荐(0)
sql server 判断一个变量为空
摘要:IF (@tmp_mh_value IS NULL) beginset @tmp_mh_value =0end 阅读全文
posted @ 2011-08-02 18:15 babyblue 阅读(310) 评论(0) 推荐(0)
SQL 语句拼接小技巧
摘要:1。 sql语句的''内 前后都要留空格 ,杜绝 因字符连写造成的错误. 'select * from test ' 阅读全文
posted @ 2011-08-01 14:57 babyblue 阅读(132) 评论(0) 推荐(0)
case语句的用法小技巧
摘要:实用case语句时,有一个注意点: 在代入select查询语句的时候,case语句必须是常量,也就是说必须是确定了的.不能以 表a.字段B的形式代入,否则无效 阅读全文
posted @ 2011-08-01 09:50 babyblue 阅读(268) 评论(0) 推荐(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) 推荐(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) 推荐(0)
存储过程中,字符串前面的N是什么意思?
摘要:如果你在N后面的单引号间只输入英文,那么把这个N给删了也没事。 N的作用就是如果你的操作系统是简体中文,你在N后面的单引号里输入了日本、德文、法文什么的,能保证你的字符串是正确的,这时N就要必写;反之如果N后面的单引号里只有英文和简体中文(长度不能超过十几K),那这个N写与不写是一样的。 阅读全文
posted @ 2011-07-29 11:40 babyblue 阅读(243) 评论(0) 推荐(0)
sql server的SQL语句中单引号的问题
摘要:如果单引号里还想用单引号的话,则用双单引号来代替---- ''1'' 阅读全文
posted @ 2011-07-22 17:23 babyblue 阅读(134) 评论(0) 推荐(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) 推荐(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) 推荐(0)

上一页 1 2 3 4