SqlServer
qubernet
这个作者很懒,什么都没留下…
展开
-
SqlServer中DateTime类型需要注意的地方
在SqlServer中,关于DateTime类型,如果业务中有比较精确的时间查询,我们需要特别注意该类型的字段,原因是SqlServer会自动将毫秒按照几个规则将最后一位的毫秒数圆整为指定的值,具体如下所示: 所以,在查询某一天数据的时候(比如查询2022年6月17号这一天的数据),结束条件可以使用 ...原创 2022-06-17 14:24:06 · 3733 阅读 · 1 评论 -
SqlServer还原数据库出现“无法在服务器上访问指定的路径或文件”提示的解决办法
出现的错误信息如下图所示: 解决办法: 打开SqlServer配置管理器,点击SQLServer服务,点击右侧的“SQLServer (MSSQLSERVER)”,右键打开属性,“登录”选项卡中将“内置账户”选择为“Local System”,点击应用即可(记得重启Sql服务)。...原创 2021-09-17 11:31:52 · 5446 阅读 · 0 评论 -
SqlServer中获取字符串中的数字部分
具体SQL如下所示:--获取字符串中的数字部分CREATE FUNCTION [dbo].[f_GetNumStr] ( @Str NVARCHAR(MAX)) RETURNS NVARCHAR(MAX) AS BEGIN WHILE PATINDEX('%[^0-9]%',@Str)>0 BEGIN --去掉非数字的字符 SET @Str=STUFF(@Str,PATINDEX('%[^0-9]%',@Str),1,原创 2021-07-13 10:26:57 · 2616 阅读 · 0 评论 -
SqlServer中查询某数据库所有表及其数据总条数和占用空间
查询某数据库中的所有数据表 SELECT name 数据表FROM sysobjectsWHERE xtype='u'ORDER BY name 查询某数据库中的所有数据表及其数据总条数 SELECT a.name 数据表, b.rows 数据总条数FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.idWHERE ( a.type = 'u' ) .原创 2020-08-05 09:44:38 · 3043 阅读 · 0 评论 -
SqlServer性能检测之Sql语句排查
很多时候,我们在用SQL语句查询数据时,难免会漏掉对SQL语句性能的考虑,所以有时就会造成SqlServer服务占用过高的问题,为了大致排查是哪些SQL语句造成的问题,我们可以通过如下SQL查询出最近所有耗时最大的SQL语句,具体查询SQL语句如下所示:SELECT s2.dbid, s1.sql_handle, ( SELECT TOP 1 SUBSTRING( s2.text, ...原创 2020-07-16 10:00:17 · 849 阅读 · 0 评论 -
SqlServer中使用游标遍历数据集合
具体代码如下所示:/***************************************** 实例:打印输出数据表BUS_Test中的Name和Age字段的值*****************************************/--声明遍历@Name和@AgeDECLARE @Name NVARCHAR(50),@Age INT--声明游标C_User...原创 2019-11-21 14:25:49 · 1014 阅读 · 1 评论 -
SqlServer中通过Sql语句批量删除数据表
业务描述: 我们在实际生产中,有时候可能会需要批量删除数据库中的某些数据表(比如:在导数据时,需要将数据库A中的某些表数据导入到数据库B中,导入的过程中也需要将数据库A的某些表结构也需要导过去,当数据导入成功后发现并没有导入数据库B,而是导入了数据库C,此时可能就需要批量将这些表给清除掉),具体SQL实现如下所示:DECLARE @TmpTb TABLE( TbNam...原创 2019-08-23 09:11:51 · 6544 阅读 · 0 评论 -
SqlServer常用对象查询
--查询用户表对象信息selectTab.Nameas[表名],Tab.create_dateas[创建时间],Tab.modify_dateas[最后修改时间], Col.Nameas[列名],Type.nameas[数据类型],Col.max_lengthas[字段长度], CASEWHENpk.is_primary_key=1THEN'Y'E...原创 2013-08-08 08:46:44 · 453 阅读 · 0 评论 -
SqlServer格式化时间
/********************************************SqlServer格式化时间*******************************************/1取值后格式化 {0:d}小型:如-5-6 {0:D}大型:如年月日 {0:f}完整型2当前时间获取 DateTime.Now.ToShortDateString3取值中...原创 2013-09-04 12:48:21 · 410 阅读 · 0 评论 -
SqlServer语句中替换like的另一种写法
--SqlServer语句中替换like的另一种写法--like写法:Select*FromBIS_StudentaWherea.PhoneLike'%77777%'--Charindex写法Select*FromBIS_StudentaWhereCharindex('77777',a.Phone)>0运行结果如下图所示:...原创 2013-10-02 22:31:25 · 1675 阅读 · 0 评论 -
SqlServer递归查询树形结果数据
SQL语法:WithtempAs( Select*FromSYS_Menua UnionAll Selectb.*FromSYS_Menub innerJointemptOnb.ParentID=t.ID)Select*Fromtemp;查询结果如下图:原创 2013-10-11 21:06:28 · 354 阅读 · 0 评论 -
SqlServer2008R2附加数据库错误5123
问题描述: 今天在用自己电脑附加数据库的时候居然报错了,提示的错误代码为5123,以前从未遇到过这种情况,百度了很多内容最后终于成功了,便记录下来了供大家参考:附加错误环境: 系统:win8.1 64位系统; 数据库版本:SqlServer2008R2;错误原型图如下所示: 错误原因: 附加的数据库文件没有Authenticated Users的完全控制权限。修正方法: 右键数据库文件,选择“...原创 2013-11-23 01:09:51 · 1165 阅读 · 0 评论 -
关于ODBC使用SQL语句和调用存储过程传递参数的使用方式说明
说明:使用ODBC方式其实和SqlClient方式差不多,主要区别在于传递参数的时候,使用?代替SqlClient中的@XXX。实例1:简单Sql语句-查询,如下图所示:实例2:简单Sql语句-添加,如下图所示:实例3:简单Sql语句-修改,如下图所示:实例4:简单Sql语句-删除,如下图所示:实例5:存储过程-查询,如下图所示:注意:实例5中p_GetAllProductByParam...原创 2015-03-25 17:19:00 · 2133 阅读 · 0 评论 -
SqlServer智能提示工具
1、SQL Assistant; 2、SQL Prompt;原创 2013-07-21 00:45:46 · 998 阅读 · 0 评论 -
SqlServer 2008R2修改表结构提示“不允许保存更改”解决方案
按照以下操作即可:1、2、原创 2013-07-06 09:30:58 · 393 阅读 · 0 评论 -
SqlServer得到生日(闰月考虑)
/**Sql得到生日(闰月考虑)*@birthday时间*@flag1:返回2月28日,0:返回3月1日*调用:Selectdbo.GetBirthday(birthday,0)FromofUserouWhereuserId='48e541e2-7883-416a-b4ee-d78ddde4d6b8'*/CreateFunctionGetBirthday( @...原创 2013-06-27 17:15:54 · 385 阅读 · 0 评论 -
SqlServer实现split功能
/*函数名称:f_SplitToNvarchar作用:实现split功能的函数更新记录:设计思路:将nvarchar类型字符结合的一个串,分隔到一张只有一列nvarchar类型的表里*/CREATEFUNCTION[dbo].[f_SplitToNvarchar]( @SourceSqlNVARCHAR(MAX),--源分隔字符串 @StrSeprate...原创 2013-06-06 12:56:16 · 415 阅读 · 0 评论 -
连接SQL SERVER的时候登录名如何清除
连接SQL SERVER的时候登录名如何清除先停止MsSql Server服务①SQL Server 2008:C:\Documents and Settings\Administrator\Application Data\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin找到该文件,删除。②SQL Server 20...原创 2013-05-13 08:50:59 · 409 阅读 · 0 评论 -
SqlServer中保留小数的实现
方式一、SELECT55/(33+0.0);方式二、SELECTCAST(55*1.0/33ASDECIMAL(10,4));原创 2013-04-01 16:55:53 · 312 阅读 · 0 评论 -
SqlServer将特定字符串拆分并进行插入操作
--循环执行添加操作declare@idxasintWhileLen(@UserList)>0BeginSet@idx=Charindex(',',@UserList);--只有一条数据If@idx=0andLen(@UserList)>0 Begin InsertIntoBIS_MsgCenterInfo(ID,Ms...原创 2013-07-25 16:44:45 · 332 阅读 · 0 评论 -
SqlServer2005海量数据存储过程分页(上)
/************************************************************ *对数据进行了分处理使查询前半部分数据与查询后半部分数据性能相同 ************************************************************/ ALTERPROCEDUREProc_QB_Pager( ...原创 2013-01-15 15:48:26 · 217 阅读 · 0 评论 -
SqlServer2005海量数据存储过程分页(下)
+''+@ID+'from'+@tblName +'orderby'+@fldSort+''+@strFSortType+ ')ASTBMinID)' +'orderby...原创 2013-01-15 15:49:23 · 148 阅读 · 0 评论 -
SqlServer中检查数据表是否存在
SELECTCOUNT(*)TCount FROMSYSOBJECTS WHEREXTYPE='U' ANDNAME='数据表名称' 返回结果: 1:数据表存在; 0:数据表不存在。...原创 2013-01-18 16:02:19 · 215 阅读 · 0 评论 -
SqlServer语句重命名数据库名称
执行语句: EXECsp_renamedb N'OldDbName',N'NewDbName';注:如出现如下图所示的错误,可参见SqlServer语句重命名数据库时出现“无法用排他锁锁定该数据库”的解决办法...原创 2013-01-21 19:46:25 · 1245 阅读 · 0 评论 -
Sql语句对数据库和表的简单操作
--向表TB_A中增加一列Address ALTERTABLETB_AADDAddressNVARCHAR(4000); --修改TB_A中的列Address类型为INT ALTERTABLETB_AALTERCOLUMNADDRESSINT; --删除TB_A中的列Address ALTERTABLETB_ADROPCOLUMNADDRESS...原创 2013-01-24 11:30:21 · 176 阅读 · 0 评论 -
SqlServer中Group By高级使用--Inner Join分组统计
当我们在使用GroupBy进行分组统计的时候,往往都会根据一个字段进行分组统计(并且这个字段是关联在这张表中的),这应该好实现。 但是当这张数据表中的某些数据要根据列一张表的某个字段进行分组统计的时候,往往会借助InnerJoin来实现,以下图为例: 现在要达到的效果是:表2中的数据要根据表1来进行分组统计,在统计表2中的数据时,表2中的ReadDate要大于或者等于表1...原创 2012-06-29 17:59:47 · 1476 阅读 · 0 评论 -
SqlServer中截取(获取)字符串中特定字符分割的每个元素
--执行结果: SELECTCASELEN(SUBSTRING(Request_AllAddress,0,CHARINDEX(';',Request_AllAddress))) WHEN0THENREQUEST_ADDRESS ELSESUBSTRING(Request_AllAddress,0,CHARINDEX(';',Request_AllAdd...原创 2012-09-24 15:14:35 · 2495 阅读 · 0 评论 -
SqlServer2005日志清理
SqlServer2005日志清理 方法一: 1、在查询分析其中输入如下代码并执行: DUMPTRANSACTIONDB_SaplingWITHNO_LOG,其中的DB_Sapling为数据库名称; 2、在数据库管理工具中右键点击要清理的数据库,如图所示选择文件: 接下来如下图设置即可: ...原创 2012-04-26 17:43:30 · 283 阅读 · 0 评论 -
SqlServer复制表结构:从另一张表中获取某些字段和类型并添加到一张已经存在的表中...
/* *赋值表结构:从另一张表中获取某些字段和类型并添加到一张已经存在的表中 */ /* t1: idnamecs t2: aabb 向t1表中增加字段,这两字段从t2表中获取,即:将t2表中的所有字段(包括类型)添加到t1表中 */ SELECTaa,bbINTOt3FROMt2WHERE1=2 SELECT*I...原创 2012-04-27 14:50:05 · 337 阅读 · 0 评论 -
SqlServer将数据表中的数据生成添加语句
/************************************************************ *将数据表中的数据生成添加语句 *调用示例: EXECCom_InsertData'TableName' *其中的TableName为表名 *************************************************...原创 2012-05-23 12:49:17 · 322 阅读 · 0 评论 -
SqlServer修改sa的密码
--SqlServer修改sa的密码: ALTER LOGIN [sa] WITH PASSWORD = N'NewPassword' OLD_PASSWORD = N'OldPassword' ALTER LOGIN [sa] WITH PASSWORD = N'NewPassword'--也可以不写旧密码原创 2012-06-07 09:22:05 · 254 阅读 · 0 评论 -
SQL server 2005 数据库只能用计算机名连接不能用IP地址
以前就遇到了这个问题,但是由于忘记重启服务了,一直不可以,只好重装了一次,结果还不行,真是差点抓狂了。 这次淡定了,解决方法如下: 1。MicrosoftSQLserver2005——配置工具——SQLServerConfigurationgManager——SQLserver2005网络配置——MSSQLSERVE的协议,将NamedPipes和TC...原创 2012-02-21 13:12:28 · 463 阅读 · 0 评论 -
Sql分页存储过程(支持多表分页存储)
USE[DB_Common] GO /******对象:StoredProcedure[dbo].[Com_Pagination]脚本日期:03/09/201223:46:20******/ SETANSI_NULLSON GO SETQUOTED_IDENTIFIERON GO /*********************************...原创 2012-03-09 23:48:32 · 223 阅读 · 0 评论 -
in与exist , not in与not exist 的区别
in和existsin是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。如果查询的两个表大小相当,那么用in和exists差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in: 例如:表A(小表),表B(大表)1...原创 2012-02-10 15:40:28 · 205 阅读 · 0 评论 -
SqlServer自增长字段归零
SQLServer2005表自增字段在多次插入数据后,自增的ID号比较混乱,而且删除数据后,自增的ID并不会归零,有两种方法可以控制自增的字段:方法一:如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数truncatetable表名方法二:dbcccheckident('table_name',reseed,n...原创 2012-02-10 15:33:13 · 415 阅读 · 0 评论 -
Sql Server对时间(月、周)的操作
---上个月月初第一天selectCONVERT(varchar(12),DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0),112)---上个月月末最后一天selectCONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)),112)...原创 2012-02-10 15:51:21 · 336 阅读 · 0 评论 -
一些Select检索高级用法(适用于mssql)
SQL五个集合函数:SUM,AVG,COUNT,MAX,MIN 通配符的一些用法:(关键字:like % [] -) select * from tablename where column1 like '[A-M]%' 这样可以选择出column字段中首字母在A-M之间的记录 select * from tablename where column1 like '[ABC]%' ...原创 2012-02-10 15:53:22 · 267 阅读 · 0 评论 -
T-SQL查询高级--理解SQL SERVER中非聚集索引的覆盖,连接,交叉和过滤
写在前面:这是第一篇T-SQL查询高级系列文章.但是T-SQL查询进阶系列还远远没有写完。这个主题放到高级我想是因为这个主题需要一些进阶的知识作为基础..如果文章中有错误的地方请不吝指正.本篇文章的内容需要索引的知识作为基础。简介 在SQL SERVER中,非聚集索引其实可以看作是一个含有聚集索引的表.但相比实际的表而言.非聚集索引中所存储的表的列数要窄很多,因为非...原创 2012-01-07 09:43:09 · 246 阅读 · 0 评论 -
SQL Server中数据库文件的存放方式,文件和文件组
写在前面:上次我关于索引的文章有几个园友发站内信问我如何将索引和表存储在不同的硬盘上。我觉的需要专门写一篇文章来讲述一下文件和文件组应该更容易理解.简介 在SQL SERVER中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已.SQL SERVER通过管理逻辑上的文件组的方式来管理文件.理解文件和文件组的...原创 2012-01-07 09:43:59 · 777 阅读 · 0 评论 -
T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他
T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能。但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索引的概念,需要了解大量原理性的知识,包括B树,堆,数据库页,区,填充因子,碎片,文件组等...原创 2012-01-07 09:46:26 · 198 阅读 · 0 评论