sql
lchyz89
这个作者很懒,什么都没留下…
展开
-
DECLARE CURSOR FOR的使用
使用目的,利用以时间等条件参照其他表格,将会议目录抽取出来(游标的执行结果),然后以添加其他的文字形式对结果进行修饰,由于最终目的是将会议目录以邮件的形势发布出去,所以单一的数据行查询的话,无法满足我想要得集合结果(根据数据库设计方式不同),所以利用触发器来接受由外部发来的参数,然后利用游标将参数为条件提取数据集,就是这样。触发器游标部分的SQL文内容:DECLARE @ROW转载 2012-01-30 17:14:37 · 41551 阅读 · 0 评论 -
在查询分析器中显示SQL语句的精确执行时间
declare @time datetime --定义时间变量 set @time = getdate() --给变量赋值select * from xx --执行sql语句select datediff(ms,@time,getdate()) --显示执行精确时间 或者 print datediff(ms,@time,getdate())http://blog.csd转载 2012-04-12 11:27:33 · 573 阅读 · 0 评论 -
通过数据库事务删除记录的存储过程
set ANSI_NULLS ONset QUOTED_IDENTIFIER ONGOcreate PROCEDURE [dbo].[GuestBook_DeleteGuestBookById] @Id intASBEGIN begin tran Del--开始事务 DECLARE @DelError int--定义记录错误数的变量 delete GuestBo转载 2012-06-11 15:38:48 · 461 阅读 · 0 评论 -
SQL函数库
SQL函数库1.字符串函数 :datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格length(expression,variable)指定字符串或变量名称的长度。 substring(expression,start,length) 不多说了,取子串 right(char_expr,int_expr) 返回字符串右边int_expr个字转载 2012-06-11 15:42:44 · 397 阅读 · 0 评论 -
SQL2005压缩清除日志
教你如何清除SQL日志1.打开查询分析器,输入命令DUMP TRANSACTION 数据库名 WITH NO_LOG2.再打开企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在 收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了。清除Log有两种方法: 1. 自动清除法 开放数据库选项 T转载 2012-06-29 14:12:00 · 913 阅读 · 0 评论 -
数据库备份文件自动压缩脚本
给大家分享一个数据库备份文件自动压缩脚本,相信大家会遇到这种情况,SQL的备份文件越来越大,而且每天都要备份,磁盘空间完全不够用,每天手动删除又太麻烦,如果服务器数量少还好说,如果服务器数量很多,几十台上百台,手动删除即费时又费力。在这里有一个bat脚本,调用的是7Z压缩软件,(7Z的压缩比率比winrar要高,能更有效的利用空间)这个脚本能自动压缩文件,然后自动删除一段时间前的原备份文件。通过计转载 2012-06-29 14:07:34 · 1982 阅读 · 0 评论 -
SQL Server返回最后一个标识值的三个函数:IDENT_CURRENT、@@IDENTITY、SCOPE_IDENTITY
SQL Server 2008中SQL应用系列--目录索引 昨天有人在群里讨论SQL Server返回最后一个标识值的三个函数:IDENT_CURRENT、@@IDENTITY、SCOPE_IDENTITY,在些作个标记和小结。 其实MSDN对此有官方解释:这三个函数都返回最后生成的标识值。 但是,上述每个函数中定义的“最后”的作用域和会话有所不同。 1、IDEN转载 2012-07-03 10:36:12 · 452 阅读 · 0 评论 -
SQL Server 新建作业
步骤是“作业”-〉“作业调度”-〉“作业步骤”,具体如下:1、使用sp_add_job添加由 SQLServerAgent 服务执行的新作业。2、使用sp_add_jobschedule创建作业调度。3、使用sp_add_jobstep将一个步骤(操作)添加到作业中 例子1:每日0点30分处理售票数据use msdbEXEC sp_add_job @job_name =转载 2012-08-01 16:19:47 · 1055 阅读 · 0 评论 -
sql日期比较
--1.一个月第一天的 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) --2.本周的星期一 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0) select dateadd(wk,datediff(wk,0,getdate()),6) --3.一年的原创 2012-08-15 16:46:59 · 465 阅读 · 0 评论 -
SQL脚本语言
下面这些命令可以在命令行下用isql执行,isql -E -Q "命令",isql.exe为安装了mssql服务器自带的一个小程序XP_CMDSHELL "dir" --执行DOS命令dir解释:执行DOS命令,就是在XP_CMDSHELL "输入DOS命令";EXEC sp_addlogin golder, golder --添加SQL用户解释:EXE转载 2012-08-01 14:40:15 · 2266 阅读 · 0 评论 -
检测SQL SERVER数据库CPU瓶颈及内存瓶颈
一、sql 数据库CPU瓶颈 对于SQL Server的一个工作进程的状态有很多,主要状态有运行中(RUNNING)、可运行(RUNNABLE)和挂起(SUSPENED)3种。通过查看系统监视计数器Processor:% Processor Time,可以确定CPU瓶颈。如果这个计数器的值很高。比如持续15-20分钟超80%,就意味着CPU出现了瓶颈。当您怀疑转载 2012-08-24 10:48:16 · 2242 阅读 · 0 评论 -
理解.NET中的数据库连接池
摘要:连接池能在程度上提高数据库访问性能。本文讨论到底何为连接池,它如何提高数据库访问性能,以及如何在.NET中创建连接池并增加或移除连接。导言连接数据库是应用程序中耗费大量资源且相对较慢的操作,但它们又是至关紧要的。连接池是已打开的及可重用的数据库连接的一个容器。连接池在所有的数据库连接都关闭时才从内存中释放。使用连接池最基本的好处是提高应用程序的性能及可伸缩性,而其主要缺点是会有一转载 2012-08-24 10:51:03 · 561 阅读 · 0 评论 -
ASP.NET中防止Access数据库下载
如何防止Access数据库下载是一个很老的话题了,网上的讨论也比较多。这里我们给出几种在ASP.NET下防止Access数据库被下载的方法。我们这里假设Access数据库名字为 test.mdb。1、把数据库放在WEB目录外如你的网站目录是D:\www,你可以把数据库放到D:\data 这个文件夹里,然后修改网站程序中的数据库连接字串地址部分为:"D:\data\test.mdb" ,转载 2012-04-11 13:54:50 · 443 阅读 · 0 评论 -
SQL语句中的rank () over , row_number() over ,rank_dense ()
SQL语句中的rank () over , row_number() over ,rank_dense ()总结如下:我创建了一个表,数据如下,SQL> select * from test; A1 A2---------- ---------- 1 3 2 4 3 2转载 2012-04-11 10:52:53 · 812 阅读 · 0 评论 -
object_id(N'表名')
请问:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PerPersonData]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)中的object_id(N'[dbo].[PerPersonData]')是什么意思?那个object_id函数?那个N?还有转载 2012-03-21 16:55:07 · 722 阅读 · 0 评论 -
SQL Cursor 基本用法
由于这个游标 执行一下就相当于SELECT一下 其效率不敢恭维也没做深入研究。 代码 1 table1结构如下 2 id int 3 name varchar(50) 4 5 declare @id int 6 declare @name varchar(50) 7 declare cursor1 cursor for --定义游标转载 2012-01-31 10:57:56 · 713 阅读 · 0 评论 -
SQL函数Substring提取部分字符串
SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:MySQL: SUBSTR(), SUBSTRING()Oracle: SUBSTR()SQL Server: SUBSTRING()最常用到的方式如下 (在这里我们用SUBSTR()为例):SUBSTR(str,pos): 由中,选出所有从第位置开始的字元。请注意原创 2012-01-31 14:03:49 · 888 阅读 · 0 评论 -
sql server CEILING函数的使用实例
使用CEILING函数CEILING函数用于返回大于或等于指定表达式的最小整数。语法:CEILING ( numeric_expression )参数说明:(numeric_expression):精确数字或近似数字数据类型类别的表达式(bit数据类型除外)。其返回值的数据类型为与numeric_expression相同的类型。示例:使用CEILING函数返回指定数的最转载 2012-01-31 11:15:25 · 5032 阅读 · 0 评论 -
压缩sql2000/sql2005日志语句
DUMP TRANSACTION [数据库名] WITH NO_LOGBACKUP LOG [数据库名] WITH NO_LOGDBCC SHRINKDATABASE([数据库名])原创 2011-12-31 11:30:09 · 322 阅读 · 0 评论 -
SQL重复记录查询
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 例二: select *from testtable wh转载 2012-02-22 14:09:02 · 265 阅读 · 0 评论 -
使用 PIVOT 和 UNPIVOT
可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值。注意对升级到 SQL Server 2005 或更高版本的数据库使用 PIVOT转载 2012-02-29 15:31:07 · 361 阅读 · 0 评论 -
SQL Server中CROSS APPLY和OUTER APPLY的应用详解
SQL Server数据库操作中,在2005以上的版本新增加了一个APPLY表运算符的功能。新增的APPLY表运算符把右表表达式应用到左表表达式中的每一行。它不像JOIN那样先计算那个表表达式都可以,APPLY必选先逻辑地计算左表达式。这种计算输入的逻辑顺序允许吧右表达式关联到左表表达式。APPLY有两种形式,一个是OUTER APPLY,一个是CROSS APPLY,区别在于指定OUTER,转载 2012-02-29 15:25:01 · 892 阅读 · 0 评论 -
Sql ISNULL() 函数
Sql ISNULL() 函数使用指定的替换值替换 NULL。语法ISNULL ( check_expression , replacement_value ) 参数check_expression将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。replacement_value在 check_expression转载 2012-03-06 14:52:54 · 525 阅读 · 0 评论 -
T-SQL 游标使用
使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,且结果往往是一个含有多个记录的集合。游标机制允许用户在SQL server内逐行地访问这些记录,按照用户自己的意愿来显示和处理这些记录。 1. 为何使用游标: 使用游标(cursor)的一个主要的原因就是把集合操作转换成单个记录处理方式。用S转载 2012-03-16 14:16:08 · 490 阅读 · 0 评论 -
高效SQL语句必杀技
No SQL,No cost. SQL语句是造成数据库开销最大的部分。而不良SQL写法直接导致数据库系统性能下降的情形比比皆是。那么如何才能称得上高效的SQL语句呢?一是查询优化器为当前的SQL语句生成最佳的执行计划,保证数据读写使用最佳路径;二是设置合理的物理存储结构,如表的类型,字段的顺序,字段的数据类型等。本文主要描述如何编写高效的SQL语句并给出示例。下面的描述主要分为三个部分,一转载 2012-04-05 09:04:47 · 505 阅读 · 1 评论 -
数据库死锁的解决办法
这个解决办法步骤如下:1. 每个表中加 updated_count (integer) 字段 2. 新增一行数据,updated_count =0 :insert into table_x (f1,f2,...,update_count) values(...,0); 3. 根据主键获取一行数据 SQL,封装成一个 DAO 函数(我的习惯是每个表一个 uuid 字段做主键。转载 2012-03-21 14:18:16 · 567 阅读 · 0 评论 -
使MSSql Server 视图可更新
1. 创建视图2. 添加触发器Create Trigger triggerName On ViewName Instead of Insert --用于Insert操作asBegin --在这儿使用Inserted表来获得实际插入的数据,如 Insert Into baseTable Select f1,f2 From InsertedEnd转载 2012-08-28 08:39:52 · 746 阅读 · 0 评论