随笔分类 -  Sql Server

摘要:向Sql Server中导入TXT文本文档中已有固定格式的数据。Bulkinsert表名from'C:\你的文本文件.txt'with(FieldterMinator='以什么符号分割数据',RowterMinator='以什么符号加\n结尾')--\n是回车的意思,就是回车前面是什么符号,如果没符号直接单引号\nBulkinsert#tempfrom'C:\test.txt'with(FieldterMinator=',',RowterMinator='\n')--#temp是表名,c盘中的tes 阅读全文
posted @ 2012-05-17 15:11 tohen 阅读(2871) 评论(0) 推荐(0)
摘要:/*测试数据createtabletmp(aint)Insertintotmp(a)values(1)*/--包含事务createprocsp_TranTest_1asbegintranUpdatetmpseta=a+1Updatetmpseta=a/0if(@@error<>0)beginrollbacktranreturn0endelsebegincommittranreturn1end--不包含事务createprocsp_TranTest_2asUpdatetmpseta=a+1Updatetmpseta=a/0执行sp1,报错,但对数据无影响;执行sp2,报错,且影响数据 阅读全文
posted @ 2011-12-02 15:44 tohen 阅读(207) 评论(0) 推荐(0)
摘要:--不用临时表,获取动态SQL的返回值declare@Rvarchar(10),@Returnvarchar(10),@snvarchar(1000)set@R='10'set@s='select@Return=''2011-''+'''+@R+''''Execsp_executesql@s,N'@Returnvarchar(10)output',@Returnoutputselect@Return 阅读全文
posted @ 2011-11-04 21:06 tohen 阅读(407) 评论(0) 推荐(1)
摘要:方法:1、建立过程CREATE PROCEDURE sp_textcopy ( @srvname varchar (30), @login varchar (30), @password varchar (30), @dbname varchar (30), @tbname varchar (30), @colname varchar (30), @filename varchar (30), @whereclause varchar (40), @direction char(1)) AS DECLARE @exec_str varchar (255) SELECT @ex... 阅读全文
posted @ 2011-10-09 11:58 tohen 阅读(1776) 评论(1) 推荐(0)
摘要:--1.新建自定义函数:从最后一个特定字符开始截取字符串createfunctionfn_GetLastCharIndex(@Charsvarchar(1000),@Charvarchar(10))returnsvarchar(1000)begindeclare@iintset@i=CharIndex(@Char,@Chars)while(@i>0)beginset@Chars=Substring(@Chars,@i+1,len(@Chars))set@i=CharIndex(@Char,@Chars)endreturn@Charsend--2.获取文件名列表ifexists(selec 阅读全文
posted @ 2011-07-26 11:19 tohen 阅读(699) 评论(1) 推荐(0)
摘要:declare@tabletable(周次int,起始日期varchar(10),结束日期varchar(10))declare@datevarchar(10),@date_oldvarchar(10),@date_Endvarchar(10),@iint,@i_oldintset@date='2011-01-03'set@date_End='2012-05-05'set@date_old=@dateset@i=datepart(week,dateadd(day,-1,@date))set@i_old=@iwhile(@date<=@date_End)be 阅读全文
posted @ 2011-06-29 12:06 tohen 阅读(451) 评论(1) 推荐(0)
摘要:表按某个字段,新增一个序号列(1,2,3,4,5...)selectRow_Number()Over(OrderbyT.XXdatetime)asSql,T.*fromXXtableTPS:适合Sql Server & Oracle 阅读全文
posted @ 2011-06-21 15:06 tohen 阅读(468) 评论(1) 推荐(0)
摘要:删除对应的sql server的注册服务器:HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\80\Tools\SQLEW\Registered Servers X\SQL Server 组中,直接删除你你要删除的那个注册名就可以了 阅读全文
posted @ 2010-12-22 10:16 tohen 阅读(373) 评论(0) 推荐(0)
摘要:一,return:从查询或过程中无条件退出。可在任何时候用于从过程、批处理或语句块中退出。RETURN 之后的语句是不执行的。 如果用于存储过程,RETURN 不能返回空值。如果强制返回则:将生成警告消息并返回 0 值。 二,break:退出 WHILE 或 IF…ELSE 语句中最里面的循环。将执行出现在 END 关键字后面的任何语句,END 关键字为循环结束标记。IF 测试通常会启... 阅读全文
posted @ 2010-08-04 12:36 tohen 阅读(4400) 评论(3) 推荐(0)
摘要:显式事务 显式事务(Explicit Transaction)是由设计人员明确定义事务的启动与结束的一种事务。可使用 BEGIN TRANSACTION、COMMIT TRANSACTION、COMMIT WORK、ROLLBACK TRANSACTION、ROLLBACK WORK 等语句来定义显式事务。[代码]自动提交事务 这是 SQL Server 的默认模式,所有未特别声明的事务,都被视为... 阅读全文
posted @ 2010-08-04 11:12 tohen 阅读(2787) 评论(0) 推荐(0)
摘要:left join的困惑:一旦加上where条件,则显示的结果等于inner join将where 换成 and用where 是先连接然后再筛选用and 是先筛选再连接数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都... 阅读全文
posted @ 2010-07-26 10:47 tohen 阅读(505) 评论(0) 推荐(0)
摘要:--在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。 USE [master] GO ALTER DATABASE SSCDZ SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE SSCDZ SET RECOVERY SIMPLE --设为简单模式 GO USE SSCDZ GO DBCC SHRINKF... 阅读全文
posted @ 2010-05-04 14:50 tohen 阅读(408) 评论(1) 推荐(0)
摘要:数据增量抽取的模拟实现──脚本实现: 实现的环境:业务数据库:Oracle数据库9i 数据仓库数据库:SQL Server 2000数据库 1、前提条件:SQL Server服务器必须已经安装Oracle驱动 2、创建链接数据库 打开企业管理器->安全性-链接服务器-右键新建通常情况当链接数据库创建好,进行打开的时候都会弹出一下错误窗口:一般情况下运行C:Progra... 阅读全文
posted @ 2010-03-16 10:31 tohen 阅读(798) 评论(1) 推荐(0)
摘要:四种通配符: 通配符 含义 % 包含零个或更多字符的任意字符串。 _ 任何单个字符。 [ ] 指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符。 [^] 不在指定范围(例如 [^a - f])或集合(例如 [^abcdef])内的任何单个字符。SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下:1、LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden)。2、LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer、Stringer)。3、LIKE'%en 阅读全文
posted @ 2009-06-20 10:47 tohen 阅读(801) 评论(0) 推荐(0)
摘要:[代码] 阅读全文
posted @ 2009-04-16 17:26 tohen 阅读(605) 评论(0) 推荐(0)
摘要:存储过程解密(破解函数,过程,触发器,视图.仅限于SQLSERVER2000) Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/*--调用示例: --解密指定存储过程 exec sp_decrypt '存储过程名' --*/ ... 阅读全文
posted @ 2009-03-10 17:11 tohen 阅读(1782) 评论(3) 推荐(0)
摘要:索引是以表列为基础的数据库对象。索引中保存着表中排序的索引列,并且纪录了索引列在数据库表中的物理存储位置,实现了表中数据的逻辑排序。 通过索引,可以加快数据的查询速度和减少系统的响应时间,可以使表和表之间的连接速度加快。但是,不是在任何时候使用索引都能够达到这种效果。若在不恰当的场合下,使用索引反而会事与愿违。所以,在SQL Server数据库中使用索引的话,还是需要遵守一定的规... 阅读全文
posted @ 2008-12-23 14:50 tohen 阅读(319) 评论(1) 推荐(0)
摘要:1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id fr... 阅读全文
posted @ 2008-12-23 14:43 tohen 阅读(326) 评论(1) 推荐(0)
摘要:SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,s... 阅读全文
posted @ 2008-12-22 10:49 tohen 阅读(2560) 评论(0) 推荐(0)
摘要:用SQL产生一串5位数字的随机数: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->declare @table table(c1 varchar(10)) declare @i int set @i=0 while(@i<=9) begin ... 阅读全文
posted @ 2008-10-04 16:17 tohen 阅读(1238) 评论(0) 推荐(0)