![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
greystar
人的一切表现,只不过是大脑的神经牵动。相同的一件事,你的大脑处理的结果也不同。它决定着你是笑是哭,是成是败。每个人,都没什么不同,充其量是个木偶,只看你的大脑懂不懂得把你向良好的方向牵动罢了。如果用计算机术语来描述,那就是说,我们需要一条最佳算法。
展开
-
SQL Server编程经验技巧
1、使用OUTPUT类型参数的存储过程的技巧 一般的存储过程都是直接返回一段记录集给调用者,但是有的时候我们只需要一些存储过程返回的一些参数的值,这时候 可以指定存储过程的OUTPUT参数,比如: Create procedure GetName @uid nvarchar(1), @usernam nvarchar(10)='' output AS set @u原创 2004-10-19 16:35:00 · 2003 阅读 · 0 评论 -
经典SQL语句大全
经典SQL语句大全转载 2010-06-12 16:07:00 · 5020 阅读 · 46 评论 -
SQL Server 2008中的MERGE(不仅仅是合并)
http://www.cnblogs.com/xfrog/archive/2010/10/13/1850602.html对于sql的一些认识还停留在几年前,对于一些新的功能目前是真的没有精力去学习和研究。看到好的文章,就自己留一下,以待后查。 OK,就像标题呈现的一样,SQL转载 2011-09-27 16:06:08 · 937 阅读 · 0 评论 -
.NET 对ORA-01000问题的正确处理
第一次使用.NET配合ORACLE进行任务操作,使用的数据驱动为:Oracle Data Provider for .NET, Managed Driver(Release 11.2.0.3.50 Beta)问题的出现和其他人出现的场景一样,在进行一次循环7万次的流程中使用OracleCommand获取数据时发生。查询了相关材料,1.对ORACLE本身进行相应的CURSOR数量设置 SQL>原创 2013-05-06 10:00:46 · 2258 阅读 · 0 评论 -
SQL SERVER DBMAIL相关记录
清除邮件日志:EXECUTE msdb.dbo.sysmail_delete_log_sp ;GO具体参原创 2014-10-09 13:59:03 · 1282 阅读 · 0 评论 -
varchar(max) 长度的验证
很久没有定下心来学习了,正好要用到数据库发邮件,正文内容长度不能确定,需要用到nvarchar(max),一开始凭经验应该觉得就是8000或4000。但网上查了结果,并做了一些测试后,才知道不是那样。以下为网上转的内容:问题描述:存储过程中有一参数,类型为varchar(max),程序中对应的使用了SqlDbType.Text,可当参数内容很长时(接近2w字符长度),报错:将截断字符串或二进制转载 2014-12-01 16:41:31 · 7388 阅读 · 0 评论 -
关于Sql sp_send_dbmail 中一个小BUG
暂时理解为一个小BUG,目前不知道如何处理。在配置完数据库邮件服务后,提升相应代理权限,能正常发送邮件,包括后备的邮件服务器队列都正常。主要问题处在:当使用一个无效的邮件地址(拼错应该是正常现象),由于我使用了重试机制(50次,每5分种一次),因此会出现,抄送名单中其他所有人都会不停的接收邮件,而服务器认为此邮件未执行成功,其实是部分成功,因其中一个出现错误。在此情况下,我不知道如何来解决,当时唯原创 2014-12-01 16:54:31 · 2271 阅读 · 0 评论 -
获取数据库当前所有活动连接的脚本
SQL2012 测试通过获取连接SELECT [dbid], DB_NAME([dbid]) as DatabaseName, COUNT([dbid]) as ConnectionsCount, [loginame] as LoginName, [status]FROM [master].[sy原创 2015-03-24 13:07:44 · 965 阅读 · 0 评论 -
查看数据库服务各数据库备份状态
列出服务器上各数据库的备份情况WITH CTE_Last_Full_Backup(database_name,backup_start_date,rank)as ( SELECT database_name,backup_start_date ,rank()over(partition BY database_name转载 2015-07-10 09:45:24 · 2324 阅读 · 0 评论 -
SQL Server 快速获取表的行数
统计表的行数,这个大家都知道使用select count(*) from table ,但是随着表的增长,这个统计的效率越来越低了。试下下面的语句吧,能快速获取多少行,还能提供一些其他表信息,如索引类型,分区数等SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED-- 快速获取表信息.SELECT Object_schema_name(p.obje原创 2015-07-07 13:16:08 · 8183 阅读 · 0 评论 -
SQL localdb 连接字符串
原来SQL 2012 下连接LOCALDB,字符串为: Data Source=(LocalDB)\v11.0;Initial Catalog=D:\aa.MDF;Integrated Security=True现在升级到SQL 2014,程序升级到VS2015,在lightswitch里添加了表,这个会自动修改数据库结构。调试发布都没有问题连接字符串仍为Data Source=(LocalDB)原创 2015-08-16 09:27:08 · 14650 阅读 · 0 评论 -
Sql使用WITH ROLLUP 进行分类汇总及小计功能
效果如下:测试代码如下:CREATE TABLE #test ( Name VARCHAR(10) , [procedure] CHAR(1) , model VARCHAR(5) , quantity INT );INSERT INTO #test SELECT 'A' , '1' ,原创 2015-10-08 15:55:45 · 17204 阅读 · 0 评论 -
查看SQLSERVER当前正在执行的sql信息
可以使用SQL Profiler捕捉在SQL Server实例上执行的活动。这样的活动被称为Profiler跟踪。这个就不多说了,大家都知道,下面是使用代码为实现相同的效果。SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT [Spid] = session_id , ecid , [Da原创 2015-12-08 15:35:26 · 9280 阅读 · 0 评论 -
SQL中获取一段时间有多少个星期
with cte as(select dt=dateadd(d,number,'2017-01-01')from master..spt_valueswhere type = 'P' and dateadd(d,number,'2017-01-01') )select top 1 weekNum=datepart(wk,dt) from cte group by datep原创 2017-11-08 14:57:30 · 2244 阅读 · 0 评论 -
SQL中的叠加--结果集合转换为字符串(小提示) 转
还是比较实用的功能,自己也记录一下。转自http://www.cnblogs.com/changbluesky/archive/2010/06/10/1753036.html转载 2010-06-10 10:56:00 · 3218 阅读 · 0 评论 -
保护SQL语句不被Sql Profiler / 事件探查器 捕获跟踪到
保护SQL语句不被Sql Profiler / 事件探查器 捕获跟踪到转载 2010-06-08 09:28:00 · 2402 阅读 · 3 评论 -
数据库表中对各字段的描述的内容
在我们做代码生成器的时候通常想将字段的描述作为对象的属性描述来处理。如果来取得字段的描述呢。其实我们可以使用SQL SERVER内部函数实现SELECT *FROM ::fn_listextendedproperty (NULL, user, dbo, table, 表名, column, default) 请在查询分析器中执行,其中的“表名”是数据库的表名原创 2004-10-19 16:38:00 · 4648 阅读 · 0 评论 -
SQL SERVER中对查询结果随机排序
Randomly Sorting Query Results 查询结果随机排序 Q. How can I randomly sort query results?问:怎样才能对查询结果随机排序?A. To randomly order rows, or to return x number of randomly chosen rows, you can use the RAND function原创 2004-10-23 15:40:00 · 1663 阅读 · 0 评论 -
在SQL中调用COM对象
在SQLSERVER中创建 OLE 对象实例,有时我们想到数据库中执行存储过程的时候,同时调用系统中的COM对象。此时我们可以采用SQL的系统存储过程sp_OACreate ,此存储过程的调用要有一定的权限,只有 sysadmin 固定服务器角色的成员才能执行 sp_OACreate。语法sp_OACreate progid, | clsid, objecttoken OUTPUT原创 2004-11-16 17:25:00 · 1794 阅读 · 0 评论 -
使用SQL语句来进行分页处理
/*使用SQL语句来进行分页使用此技术的第一步是将所需页的数量与页大小相乘,然后将结果使用TOP关键字升序排序,再将此查询嵌入另一个查询中.此查询是取页尺寸的大小的记录数。是降序处理这样此查询是返回嵌入查询的最后一页。如果需要,可以将最终查询结果再进行升序处理*/declare @pagesize int --每页显示的记录数declare @Pages int --要显示的页数set @原创 2004-12-22 12:19:00 · 2956 阅读 · 0 评论 -
SQL中Print语句的烦恼
前几天写一个程序时,无意中遇到一个怪问题.症状描述如下:一台联想服务器上安装了SQLSERVER服务,在其一个数据库里写了一个存储过程.此存储过程接受一个参数,里面的语句对参数进行判断然后执行分支.if @CustType=0 ..................else if @CustType=1.......................else...............基原创 2005-04-14 12:50:00 · 4080 阅读 · 0 评论 -
Sql2005分页选择
select OID ,Pos from (select OID, ROW_NUMBER() OVER (order by OID) as Pos from directoryRights) as T where T.Pos > 1 and T.Pos < 10原创 2006-09-26 23:42:00 · 1877 阅读 · 0 评论 -
使用sql判断指定表中的有标识的字段
一朋友问及一个问题:在SQL Server2000里如何通过sql语句查出指定数据表中自动编号的字段名,即包含标识的字段名。其实使用一个简单的sql语句就搞定了:Select [name] From sysColumns Where id=object_id(NTABLENAME) and Status=128其中TABLENAME为你要查询的数据表名称。如果想查询标识种子和标识增原创 2006-09-26 23:46:00 · 2196 阅读 · 0 评论 -
MS SQLSERVER中如何快速获取表的记录总数
在数据库应用的设计中,我们往往会需要获取某些表的记录总数,用于判断表的记录总数是否过大,是否需要备份数据等。我们通常的做法是:select count(*) as c from tableA 。然而对于记录数巨大的表,上述做法将会非常耗时。在DELL 4400 服务器上做试验,MS Sqlserver 2000 数据库对于100万记录的简单数据表执行上述语句,时间在1分钟以上。如果在表的某个字段原创 2006-09-27 00:05:00 · 1768 阅读 · 0 评论 -
SQL report service中的TOP N 的使用
TSQL中有 TOP N的方法用来获取前N条记录,在使用sql report service 中也有这样的需求,按照MS的常识,设置这个应该很简单.在report service 的图表属性的筛选器中的字段如下表达式 运算符 值 与/或那么我们在设置表达式时,只要选择原创 2007-10-23 09:17:00 · 2131 阅读 · 0 评论 -
Report Service 中数据类型的问题
最近遇到个问题,头都给搞大了.在Report Service2000中做个报表,其实有一个数据字段是小数(二数除的结果),最后要显示为百分比的.自己取出数据显示出来,一点问题都没有.但是Report 一调用,就会显示出错误的数据了.比如真的数据为0.25,但到报表中却显示为12.5 ,找来找去却找不到原因.google一把,也没遇到这种情况.真的晕了.一次在无意当中却发觉这个问题的解决方式,但原创 2007-11-06 14:40:00 · 1883 阅读 · 0 评论 -
SQL 遇到以零作除数错误的处理
这样一个情况select * from a where c>0 and (b/c)>0.5 and (b/c)这样一条语句,由于b,c是二个数值列,里面记录的是金额,而c 的话有可能为0,那么这时我们虽然加上了c>0这个条件,却仍有可能 出现 遇到以零作除数错误 这个错误.解决这个问题,有二种方法,一种是自己加个函数 发觉c=0时,将c改成1 ;如 b/checkdata(c)另原创 2008-04-25 16:23:00 · 6901 阅读 · 3 评论 -
SQL2008中"阻止保存要求重新创建表的更改" 的处理
当用户在在SQL Server 2008企业管理器中更改表结构时,必须要先删除原来的表,然后重新创建新表,才能完成表的更改,如果强行更改会出现以下提示: 不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了“阻止保存要求重新创建表的更改”选项。如果要去掉此提示,打开SQL 2008 在最上面工具-〉选项-〉左侧有个 设计器-〉表设计器和数据库设计器原创 2009-05-06 13:36:00 · 4575 阅读 · 4 评论 -
统计数据库有多少数据量
select sum(rows) from sysindexes where id in(select id from sysobjects where xtype=u) and indid in (0,1) 一个大致的结果,数据相对正确,关键是快速取到.系统表的作用就不解释了原创 2009-11-25 10:37:00 · 1553 阅读 · 0 评论 -
查询SQLServer JOB相关执行状态的语句
查询作业基本信息和作业执行情况SELECT [jop].[job_id] AS '作业唯一标识符' ,[jop].[name] AS '作业名称' ,[dp].[name] AS '作业创建者' ,[cat].[name] AS '作业类别' ,[jop].[description] AS '作业描述' , CASE [jop].[enabled] ...转载 2019-02-02 13:14:02 · 2847 阅读 · 0 评论