
MSSQL
aroc_lo
这个作者很懒,什么都没留下…
展开
-
MSSQL FLOAT 的问题挺郁闷的
图中的 905 * 0.815 正常的计算结果为 737.575 ,四舍五入保留两位小数就应该是:737.58但是呢,如:jjjjj2 所显示竟然是:737.57 。其实真实的计算结果如:jjjj1所示:737.574999999。四舍五入保留两位小数自然就是不是预期应该的数了;这个名字,就是 float 的精度差的问题。将其转换为精度较好的类型后果再取四舍五入就好了。...原创 2021-07-09 10:51:01 · 294 阅读 · 0 评论 -
SQL 获取月份的天数
SELECT 32-DAY(getdate()+32-DAY(getdate()))原创 2021-06-16 15:32:42 · 3470 阅读 · 0 评论 -
取字符串中第一个数字 与 最后一个数字的位置
DECLARE @str NVARCHAR(255) = 'YX807.起8款小折盒各入1个配件(其中7仔入3种),起大折盒,放8个小折盒入盒放板。'SELECT PATINDEX('%[0-9]%', @str) AS 第一个数字位置 , LEN(@str) - PATINDEX('%[0-9]%', REVERSE(@str)) + 1 AS 最后一个数字位置...原创 2021-06-11 10:12:55 · 931 阅读 · 1 评论 -
PIVOT 与 UNPIVOT 的纵横互转
在 MSSQL2008R2 上测试,其它版本未知原创 2021-05-31 14:48:10 · 138 阅读 · 0 评论 -
FireDAC 连接SQL Server需要注意的
TFDConnection:FetchOptions.Mode 设置为fmAll, 返回全部结果, 否则默认只返回前50条, 效果与open以后再执行FetchAll一样ResourceOptions.SilentMode 设置为True, 就不需要FDGUIxWaitCursor之类的东西了, 同样也不再会自动改变鼠标样式, 默认是需要的TFDQuery:Resour...转载 2020-04-17 14:12:50 · 619 阅读 · 0 评论 -
关于sql的执行计划(推荐详细)
刚开始用SQL Server的时候,我没有用显示执行计划来对查询进行分析。我曾经一直认为我递交的SQL查询都是最优的,而忽略了查询性能究竟如何,从而对“执行计划”重视不够。在我职业初期,我只要能获取数据就很开心,而不去考虑数据是如何返回的,“执行计划”对我的查询作了什么工作。我以为SQL Server会自己去处理查询的性能问题的。作为一个刚进入IT行业或者刚学到新技术的软件工程师,在编写代码前不太转载 2013-04-01 15:05:17 · 618 阅读 · 0 评论 -
收藏 SQL系统语句大全
1、用户查看当前用户的缺省表空间SQL>select username,default_tablespace from user_users;查看当前用户的角色SQL>select * from user_role_privs;查看当前用户的系统权限和表级权限SQL>select * from user_sys_privs;SQL>select * from转载 2013-04-01 15:10:35 · 621 阅读 · 0 评论 -
SQL2008 SELECT 增加序号
在以前。。。要增加一个序号。需要使用类似:select id=identity(int,1,1),* into #temp from tablename 这样的语句,去生成一个表来使用,挺麻烦的SQL2008就没有那么麻烦了。create table #temp( AA varchar(10),BB varchar(10))insert into原创 2013-11-18 09:44:51 · 1010 阅读 · 0 评论 -
引用:初探Sql Server 执行计划及Sql查询优化
MSSQL优化之————探索MSSQL执行计划 最近总想整理下对MSSQL的一些理解与感悟,却一直没有心思和时间写,晚上无事便写了一篇探索MSSQL执行计划,本文讲执行计划但不仅限于讲执行计划。 网上的SQL优化的文章实在是很多,说实在的,我也曾经到处找这样的文章,什么不要使用IN了,什么OR了,什么AND了,很多很多,还有很多人拿出仅几S甚至几MS的时间差的例子来证明着什么(有转载 2013-04-01 15:06:46 · 522 阅读 · 0 评论 -
优化SQL Server的内存占用之执行缓存
在论坛上常见有朋友抱怨,说SQL Server太吃内存了。这里笔者根据经验简单介绍一下内存相关的调优知识。首先说明一下SQL Server内存占用由哪几部分组成。SQL Server占用的内存主要由三部分组成:数据缓存(Data Buffer)、执行缓存(Procedure Cache)、以及SQL Server引擎程序。SQL Server引擎程序所占用缓存一般相对变化不大,则我们进行内存调转载 2013-04-01 15:09:27 · 647 阅读 · 0 评论 -
SQL Server中常用的特殊日期代码函数语句
1 ---上个月月初第一天select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 )---上个月月末最后一天select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 11转载 2013-04-11 15:12:30 · 742 阅读 · 0 评论 -
使用SQL语句对重复记录查询、统计重复次数、删除重复数据
上周工作中数据库中出现了N多重复记录的情况,导致联合查询时数据异常。由于数据是客户提供的,当时并没有提供唯一标识列,而且也没预料到会出现重复数据。哎,大意了。后来对表中的数据进行了一次重复查询。1、查找表中重复记录,重复记录是根据单个字段来判断,并统计重复次数SELECT [字段],COUNT(0) AS 重复次数 FROM [表名] GROUP BY [字段] HAVING CO转载 2012-10-27 11:12:28 · 12259 阅读 · 2 评论 -
用SQL语句添加删除修改字段
1.增加字段 alter table docdsp add dspcodechar(200)2.删除字段 ALTER TABLE table_NAME DROP COLUMNcolumn_NAME3.修改字段类型 ALTER TABLE table_name ALTER COLUMNcolumn_name new_data_type4.sp转载 2011-11-15 22:44:50 · 745 阅读 · 0 评论 -
SQL Server 2008 R2 下载 序列号
<br />SQL Server 2008 R2 RTM 中文版 下载地址<br /><br />http://care.dlservice.microsoft.com/dl/download/1/E/6/1E626796-588A-495C-917B-321093FB98EB/2052/SQLFULL_x86_CHS.exe<br /><br />安装时记得把客户端选上,要不没企业管理器太麻烦了,又不像05那样好装,所以安装时带上是最好的办法<br /><br />SQL Server 2008原创 2010-11-06 09:41:00 · 3688 阅读 · 0 评论 -
SQL转换首字母大写脚本
CREATE FUNCTION [dbo].[Fu_StringCase]( @inputString varchar(2000) /* 定义参数,用来接收函数的输入 */)RETURNS varchar(2000) /* 定义函数的返回类型 */ASBEGIN/* 转换为小写字母 */SET @inputString = LOWER(@inputString)/* 设置第一个字母为大写 */SET @inputString = STUFF(@inputS转载 2010-09-28 13:36:00 · 3013 阅读 · 0 评论 -
查看 MSSQL 资源死锁
CREATE Table #Who(spid int, ecid int, status nvarchar(50), loginname nvarchar(50), hostname nvarchar(50), blk int, dbname nvarchar(50), cmd nvarchar(50))CREATE Table #Lock(spid int, dpid int, objid int, i原创 2010-08-14 10:30:00 · 775 阅读 · 0 评论 -
SQL SERVER 2005 同步复制技术
一、准备工作: 1.建立一个 WINDOWS 用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户。 2.在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访)。打开1433端口,在防火墙中设特例 3.在发布服务器上建立一个共享目录,作为发布快照文件的存放目录。例如:在D盘根目录下建文原创 2010-04-20 09:28:00 · 515 阅读 · 0 评论 -
SQLServer2000同步复制技术实现步骤
一、 预备工作1.发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户--管理工具--计算机管理--用户和组--右键用户--新建用户--建立一个隶属于administrator组的登陆windows的用户(SynUser)2.在发布服务器上,新转载 2010-04-20 09:27:00 · 483 阅读 · 0 评论 -
数据从sqlserver中导出到access数据库中
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCE转载 2010-01-10 23:57:00 · 1207 阅读 · 0 评论 -
将access导入SQL server
熟悉SQL SERVER 2000的数据库管理员都知道,其DTS可以进行数据的导入导出,其实,我们也可以使用Transact-SQL语句进行导入导出操作。在 Transact-SQL语句中,我们主要使用OpenDataSource函数、OPENROWSET 函数,关于函数的详细说明,请参考SQL联机帮助。利用下述方法,可以十分容易地实现SQL SERVER、ACCESS、E转载 2010-01-10 23:45:00 · 588 阅读 · 1 评论 -
SQL2000升级到了SQL2008遇到的问题之一
由于更换服务器(旧服务器windows2003+sql2000 + 至强5320*2 + 4GB内存,新服务器win2008+sql2008 + E7-4087*2 + 32GB内存)运行同一个存储过程,如:CREATE PROCEDURE [dbo].[MSP_XT_QryGetCLByGongChengDan]ASBEGIN SET NOCOUNT ON; CREATE T原创 2013-05-02 12:39:58 · 2210 阅读 · 0 评论 -
存储过程中 事务 + try…catch 联合使用
在存储过程中使用事务时,如果没有try…catch语句,那么当set xact_abort on时,如果有错误发生,在批处理语句结束后,系统会自动回滚所有的sql操作。 当set xact_abort off时,如果有错误发生,在批处理语句结束后,系统会执行所有没有发生错误的语句,发生错误的语句将不会被执行。 在存储过程中使用事务时,如果存在try…ca原创 2013-05-22 10:27:03 · 996 阅读 · 0 评论 -
MSSQL2005+分组添加序号
表名:a字段1 字段21 a2 a3 a4 b5 b7 c8 cselect 字段1=row_number()over(partition by 字段2 order by getdate()),字段2from a得到字段1 字段21...转载 2019-07-16 16:02:43 · 362 阅读 · 0 评论 -
MSSQL将字符串转换成列表格式
SET NOCOUNT ONDECLARE @SCDH VARCHAR(200),@BDBH VARCHAR(200)DECLARE @T TABLE(SCDH VARCHAR(20))SET @BDBH='HS18080045/HS18080047'SET @SCDH=@BDBH--方法1PRINT '方法1'IF CHARINDEX('/',@SCDH)=0 ...原创 2018-11-22 13:54:37 · 987 阅读 · 0 评论 -
分组字符合并SQL语句
SQL code/*标题:按某字段合并字符串之一(简单合并)描述:将如下形式的数据按id字段合并value字段。id value----- ------1 aa1 bb2 aaa2 bbb2 ccc需要得到结果:id value------ -----------1 aa,bb2 aaa原创 2011-05-10 08:25:00 · 1083 阅读 · 2 评论 -
SQL的日期格式
备用SELECT CONVERT(VARCHAR(40),GETDATE(),1) AS 时间,CAST('1' AS VARCHAR(10)) AS 格式代码 UNION ALLSELECT CONVERT(VARCHAR(40),GETDATE(),2),'2'UNION ALLSELECT CONVERT(VARCHAR(40),GETDATE(),3),'3'UNIO原创 2016-12-14 15:51:06 · 6687 阅读 · 0 评论 -
sql server cross/outer apply 用法
这是 sql server 帮助文档关于apply的描述: 使用 APPLY 运算符(2005或以上版本)可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。 APPL原创 2016-11-23 15:27:02 · 7099 阅读 · 0 评论 -
SQL存储过程返回受影响的行数
在很多时候,使用存储过程,不需要返回数据集,但是经常想知道存储过程是否对数据库有影响;这些,只需要将下列数据放在你需要统计的语句后面即可;select @@ROWCOUNT原创 2016-10-06 11:07:47 · 16265 阅读 · 0 评论 -
初学sql server 2008之触发器
触发器(trigger):是一种特殊的存储过程,可以用来对表实施复杂的完整性约束,保持数据的一致性。当触发器所保护的数据发生改变时,触发器会自动被激活,并执行触发器中所定义的相关操作,从而保证对数据的不完整性约束或不正确的修改。 在SQL SERVER 2008中,有三种类型的触发器:(1)DML触发器:是指触发器在数据库中发生数据操作语言(DML)事件时将启用。DML事件即指在表或视图转载 2014-09-24 09:15:14 · 5681 阅读 · 0 评论 -
SQL Server 2005/2008 触发器的管理和查看
1、通过可视化操作来管理和查看触发器在Microsoft SQL Server Management Studio中,选中某一数据库的某一张表时,在“对象资源管理器详细”窗口中有“触发器”项。通过“触发器”的右键菜单功能,我们可以新建触发器。如果原来的表中已经存在了触发器,通过双击“触发器”项可以查看到具体的触发器,在此处可以执行 修改、删除等操作。2、通过查询分析器来管理和查转载 2014-09-24 09:13:40 · 5226 阅读 · 0 评论 -
SQL语句,找最近的值;
在一个项目中,,由于产品的单价经过会变,,根据原创 2014-09-01 23:20:09 · 5905 阅读 · 0 评论 -
去除连续重复的行
在开发一个客户的业务员提成软件时。原创 2014-08-24 01:44:03 · 6132 阅读 · 0 评论 -
为己存在的数据添加序号
DECLARE @t TABLE(ii INT,nn VARCHAR(10))INSERT @t(nn)VALUES ('a'),('b'),('c'),('d'),('e')DECLARE @i INTSET @i = 0UPDATE @t SET ii = @i ,@i = @i + 1 SELECT * FROM @t/*结果ii nn原创 2014-03-15 12:07:11 · 912 阅读 · 0 评论 -
SQL语句大全
原贴:点击打开链接SQL语句大全--语 句 功 能--数据操作SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABL转载 2013-07-27 12:26:05 · 839 阅读 · 0 评论 -
ADO的数据泵
//==============================================================================// batCopy 先删除已存在的表,再创建新表,再往表中增加数据// batAppend 往已存在的表中追加数据// dsQuery 源数据集控件是TADOQUERY// dsTable 源数据集控件是TADOTABLE//转载 2013-07-07 23:41:54 · 632 阅读 · 0 评论 -
经常因为殊字符的问题导致查询异常
在日常的数据库软件开发中,有一些个特殊字符挺烦人。 比如 ' (单引号),如果有这个字符内就会有问题。在构建SQL语句的时间就要特殊处理它。 为了解决这个问题当然还有其它的方法,在这里我想从根源上解决,就是在保存数据时就自动替换为全角字符function PUBF_ConvertSpecialChar(const s:string):string;var nleng原创 2013-05-10 10:22:31 · 771 阅读 · 0 评论 -
在编写SQL语句时应该注意的一些小问题;
比如我想查询一个字段,该字段的内容中使用[](即中括号)例:表1FID FName FRemark1 abc 123[ddd]asf 此时,你的SQL语句写成: select * from 表1 where fRemark = 123[ddd]asf 是查询不出来数据的, 将上面的这条语句换成:s原创 2010-01-19 14:26:00 · 719 阅读 · 0 评论 -
SQL获取所有用户名,数据库名、所有表名、所有字段名及字段类型
SQL获取所有用户名,数据库名、所有表名、所有字段名及字段类型2009-03-14 10:481.获取所有用户名:SELECT name FROM Sysusers where status=2 and islogin=1islogin=1表示帐户islogin=0原创 2009-10-25 18:53:00 · 1012 阅读 · 0 评论 -
Delphi 操作 DTS
DTS是SQL Server中用于完成一系列数据调度的工具,由于它的特殊性,在程序中操作DTS包是件麻烦的事情。但是微软还算很厚道,留了一个接口,让用户在自己开发的程序中,可以无障碍的使用DTS包。本文讲述的就是如何在Delphi中操作DTS包。一、导入相关的DLL首先,新建一个Package,并保存在Component->Import Component菜单中,选择Impo转载 2008-10-04 14:39:00 · 595 阅读 · 0 评论 -
SQL SERVER性能优化综述
近期因工作需要,希望比较全面的总结下SQL SERVER数据库性能优化相关的注意事项,在网上搜索了一下,发现很多文章,有的都列出了上百条,但是仔细看发现,有很多似是而非或者过时(可能对 SQL SERVER6.5以前的版本或者ORACLE是适用的)的信息,只好自己根据以前的经验和测试结果进行总结了。 我始终认为,一个系统的性能的提高,不单单是试运行或者维护阶段的转载 2008-10-01 14:57:00 · 415 阅读 · 0 评论