![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
炮灰丁
啊啊啊dsf
展开
-
sp_addlinkedserver使用方法
Exec sp_droplinkedsrvlogin DBVIP,NullExec sp_dropserver DBVIPEXEC sp_addlinkedserver @server='DBVIP',--被访问的服务器别名 @srvproduct='', @provider='SQLOLEDB', @datasrc="/Server2" --要访问的服务器EXEC sp_addlinkedsrvlogin 'DBVI转载 2010-12-02 13:29:00 · 4423 阅读 · 0 评论 -
纯真QQIP库导入到SQL Server详解
<br />相信很多人都是需要通过用户的IP来确认用户是属于哪个区域的,最新的QQIP数据库纯真版20100515,里面的IP数据记录已经达到了:378448条。它收集了包括中国电信、中国移动、中国联通、长城宽带、聚友宽带等 ISP 的最新准确 IP 地址数据。包括最全的网吧数据。本来这个IP库的用意是在QQ上能显示对方的地理位置,在我们的程序中也偶尔有需要的时候,所以把它导入到我们的数据库中成为一张表是非常有必要的。<br />但是很多人会说这有什么难的呢?但是在实际的操作过程中出现了很多问题,比如:导入转载 2011-03-06 23:39:00 · 357 阅读 · 0 评论 -
sql 行列互转
<br />create table test(id int,name varchar(20),quarter int,profile int) <br />insert into test values(1,'a',1,1000)<br />insert into test values(1,'a',2,2000)<br />insert into test values(1,'a',3,4000)<br />insert into test values(1,'a',4,5000)<br />inser转载 2011-03-06 23:10:00 · 330 阅读 · 0 评论 -
连接远程服务器
<br />--方法1:<br />select * from openrowset('SQLOLEDB','server=192.168.0.67;uid=sa;pwd=password','SELECT * FROM BCM2.dbo.tbAppl')<br /><br />--方法2:<br />select * from openrowset('SQLOLEDB','192.168.0.67';'sa';'password','SELECT * FROM BCM2.dbo.tbAppl')转载 2011-03-06 23:14:00 · 285 阅读 · 0 评论 -
Date 和 Time 样式
不带世纪数位 (yy) (1) 带世纪数位 (yyyy) 标准 输入/输出 (3) <br />-<br />0 或 100 (1,2)<br />默 认<br />mon dd yyyy hh:miAM(或 PM)<br />1<br />101<br />美 国<br />mm/dd/yyyy<br />2<br />102<br />ANSI<br />yy.mm.dd<br />3<br />103<br />英 国/法国<br />dd/mm/yyyy<br />4<br />104<br />德转载 2011-03-06 23:15:00 · 1764 阅读 · 0 评论 -
SQL中的相除
<br />--SQL中的相除<br />SELECT CASE WHEN ISNULL(A+B,0)<>0 THEN <br />LTRIM(CONVERT(DEC(18,2),A*100.0/(A+B)))+'%' ELSE '' END AS '百分数' <br />FROM TB <br /> --百分比的不同格式<br />select <br />LTRIM(CONVERT(DEC(18,2),42*100.0/96))+'%' AS '百分数string' ,--DEC=decimal<br转载 2011-03-06 23:16:00 · 2264 阅读 · 0 评论 -
count的几种情况
<br />--第一种<br />select count(*) from tablename<br /><br />--第二种<br />select count(ID) from tablename<br /><br />--第三种,1换成其它值也是可以的<br />select count(1) from tablename<br /><br />/*<br />--第四种,这个不存在性能问题<br />idint 表ID(如果 indid = 0 或255)。否则为索引所属表的ID<br />Ind转载 2011-03-06 23:19:00 · 404 阅读 · 0 评论 -
查看数据库缓存的SQL
<br />--适用MSSQL2000、MSSQL2005<br />use master<br />declare @dbid int<br />Select @dbid = dbid from sysdatabases where name = 'Test'--修改成数据库的名称<br />select<br />dbid,UseCounts ,RefCounts,CacheObjtype,ObjType,<br />DB_Name(dbid) as DatabaseName,SQL<br />from转载 2011-03-06 23:20:00 · 292 阅读 · 0 评论 -
SQL换行
<br />/*<br />SQL的换行<br />制表符 CHAR(9)<br />换行符 CHAR(10)<br />回车 CHAR(13)<br />*/<br />PRINT 'Test'+CHAR(13)+'Name'<br />PRINT 'Test'+CHAR(10)+'Age'<br />PRINT 'Test'+CHAR(9)+'Tel'<br /><br />--以文本格式显示结果<br />SELECT 'AAA'+ CHAR(10)+'BBB'--AAA BBB<br />SELE转载 2011-03-06 23:23:00 · 4186 阅读 · 0 评论 -
Sql中判断"数据库"、"表"、"临时表"、"存储过程"和列"是否存在
<br />转载自:http://www.cnblogs.com/icebutterfly/archive/2010/05/27/1745686.html<br />--判断数据库是否存在 <br />IF EXISTS (SELECT * FROM MASTER..sysdatabases WHERE NAME = '库名')<br /> PRINT 'exists ' <br />else <br /> PRINT 'not exists' <br />-- 判断要创建的表名是否存在 <原创 2011-02-24 12:39:00 · 713 阅读 · 0 评论 -
修复数据库
use [数据库名]goALTER DATABASE [数据库名] SET SINGLE_USERDBCC CHECKDB ([数据库名], repair_allow_data_loss) with NO_INFOMSGSgoALTER D原创 2011-08-29 22:06:18 · 336 阅读 · 0 评论 -
SQL Server-处理事务LOG相关操作
SQL Server 的每一个数据库,无论是系统数据库(master,model, ybsystemprocs, tempdb),还是用户数据库,都有自己的transaction log,每个库都有syslogs表。Log记录用户对数据库修改的操作,所以如果不用命令清除, log会一直增长直至占满空间。清除log可用dump transaction 命令;或者开放数据库选项trunc log on原创 2011-11-21 20:54:38 · 499 阅读 · 0 评论 -
MSSQL数据库表索引碎片整理优化性能
最近一段时间后台查询某些库的时候,速度极慢。慢得直接超时。当时把存储过程优化了一次又一次。索引也是删了重建。但是还是很慢。甚至就连执行select count(id) from table 都花了37秒。 后来上网查了方法。照着检查了一遍,果然是碎片问题。一通修复后,速度骤然提升! 在SQLServer数据库,通过DBCC ShowContig或DBCC ShowContig(表名)检原创 2011-11-21 09:55:02 · 1660 阅读 · 0 评论 -
sql 逐行读取、导入、文本文件数据
今天工作中,需要读取几个文本文件,处理后放入数据中。又不想写程序,sql脚本最方便。在网上搜了半天,也没找到逐行读取的。最后实在没办法。只有换种思路了。如果有朋友知道正统的sql逐行读取脚本的,请指教下。我的文本文件格式大致如下:1111 22222 33333 4444441111 22222 33333 4444441111 22222 3333原创 2011-12-05 16:44:35 · 2279 阅读 · 0 评论 -
sql游标 打开动态拼接语句
这个问题下午困扰了好久,最后有幸得到一朋友的指点,算是搞定了。。。DECLARE @SQLS NVARCHAR(4000) --拼接sql语句set @SQLS = 'select top '+cast(@TOP as nvarchar(10))+' a,b from …………'set @SQLS='declare daoru cursor for '+@SQLS原创 2011-12-05 16:51:54 · 1769 阅读 · 1 评论 -
sql server 简单快速查找阻塞
根据master.dbo.sysprocesses中的spid和blocked查找当前阻塞语句的主人,然后使用DBCC INPUTBUFFER ()查看阻塞语句。 例子: 打开三个查询分析器 A、B、C 创建一个测试用的表 testDia 在A执行以下语句: Begin tran Insert Into testDia Values(1); 在B执行以原创 2012-12-14 01:48:05 · 429 阅读 · 0 评论 -
mysql超过2M导入方法以及解决乱码
首先【可选,先不设置直接导了再说,不行再回来设置一样】:在mysql的安装目录下 找到 my.ini文件 加入以下代码:interactive_timeout = 120wait_timeout = 120max_allowed_packet = 32M然后进入mysql的 命令行mysql>use 数据库;mysql>source d:data.sql到这里原创 2015-11-02 10:50:20 · 455 阅读 · 0 评论 -
查询时区分大小写
--生成测试数据<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[test](<br /> [name] [varchar](20) NULL,<br /> [quarter] [int] NULL,<br /> [profile] [int] NULL,<br /> [dates转载 2011-03-06 23:22:00 · 546 阅读 · 0 评论 -
Union all
<br />--把两个相同结构的表union后插入到一个新表中<br />select * <br />into table_now<br />from table_1<br />union all select * from table_2<br />--Truncate table table_now转载 2011-03-06 23:19:00 · 231 阅读 · 0 评论 -
常用 SQL 语句 字符串 处理
常用的字符串函数有: 一、字符转换函数 1、ASCII() 返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。 2、CHAR() 将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。 3、LOWER()和UPPER() LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。 4、STR() 把数值型数据转换为字转载 2011-01-12 10:40:00 · 328 阅读 · 0 评论 -
SQL删除指定路径的物理文件
今天需要在服务器做一个,自动删除三天以前的备份文件.在网上搜索了半天,看得晕乎乎的。于是自己尝试写了一个脚本。这个脚本放在MSSQL的计划作业中,还是蛮好用的。方法思路: 将文件夹中的文件名取出来放入,放入临时表中,因为备份文件名中有日期, 咱直接判断日期就行了。超过三天的直接删掉。上代码:---先删掉临时表(偷懒不判断了^_^,第一次执行会报错)drop table #BfName---创建临时表create table #BfName(id int IDENTITY (1, 1),原创 2011-01-12 15:02:00 · 1059 阅读 · 0 评论 -
sql替换字符串 substring replace
<br />--例子1:<br />update tbPersonalInfo set TrueName = replace(TrueName,substring(TrueName,2,4),'**') where ID = 1<br /><br />--例子2:<br />update tbPersonalInfo set Mobile = replace(Mobile,substring(Mobile,4,11),'********') where ID = 1<br /><br />--例子3:<br转载 2011-03-06 23:11:00 · 612 阅读 · 0 评论 -
把多行SQL数据变成一条多列数据,即新增列
<br />Select<br />DeptName=O.OUName,<br />'9G'=Sum(Case When PersonalGrade=9 Then 1 Else 0 End),<br />'8G'=Sum(Case When PersonalGrade=8 Then 1 Else 0 End),<br />'7G4'=Sum(Case When PersonalGrade=7 AND JobGrade =4 Then 1 Else 0 End),<br />'7G3'=Sum(Case Wh转载 2011-03-06 23:12:00 · 2455 阅读 · 0 评论 -
四舍五入
<br />/*ROUND ( numeric_expression , length [ ,function ] )<br />function 必须为 tinyint、smallint 或 int。<br />如果省略 function 或其值为 0(默认值),则将舍入 numeric_expression。<br />如果指定了0以外的值,则将截断 numeric_expression。*/<br />SELECT ROUND(150.45648, 2);--保留小数点后两位,需要四舍五入<br /转载 2011-03-06 23:17:00 · 382 阅读 · 0 评论 -
对字段出现NULL值的处理
<br />--判断某些字段是否为空<br />--case<br />select case when '字段名' is null then '/N' else convert(varchar(20),'字段名') end as 'NewName'<br />select case when null is null then '/N' else convert(varchar(20),null) end as 'NewName'<br /><br />--SQL Server 2005:coalesce转载 2011-03-06 23:18:00 · 390 阅读 · 0 评论 -
导出时加入特殊字符
<br />情况一:全部字段都需要加字符,在这里设置【文本限定符】就可以了。<br /><br /> <br />情况二:--某些特殊的字段需要加单引号(或者其它符号) <br />SELECT<br /> [ID]<br /> ,''''+convert(varchar(25),[ts],121)+'''' as [ts]<br /> ,''''+convert(varchar(25),[otherParty],121)+'''' as [otherParty]<br />转载 2011-03-06 23:21:00 · 319 阅读 · 0 评论 -
sql 随机抽取几条数据的方法 推荐
<br />传说用这个语句管用:select top 5 * from tablename order by newid() <br /><br />我放到sql的查询分析器里去执行果然管用,随机抽取5条信息,不停的换,结果我应用到程序里的时候就不管用了,总是那几条,于是对这个东西进行了一个研究得出另一种方法: <br /><br />newid() 可以产生如:"49869293-8891-4B31-B88E-A584D9621490” 这样的数据结果,而且每一行产生的都不同,这样的话,我们就可以在查询的转载 2011-03-07 17:32:00 · 564 阅读 · 0 评论 -
SQL查询一个表内相同纪录 having
如果一个ID可以区分的话,可以这么写<br />select * from 表 where ID in (<br />select ID from 表 group by ID having sum(1)>1)如果几个ID才能区分的话,可以这么写<br />select * from 表 where ID1+ID2+ID3 in<br />(select ID1+ID2+ID3 from 表 group by ID1,ID2,ID3 having sum(1)>1)其他回答:数据表是zy_bho,想找转载 2011-03-06 23:12:00 · 414 阅读 · 0 评论 -
删除计划缓存
<br />--删除整个数据库的计划缓存<br />DBCC FREEPROCCACHE<br /><br />--删除某个数据库的计划缓存<br />USE master<br />DECLARE @dbid INT<br />SELECT @dbid=dbid FROM sysdatabases WHERE NAME = '表名'<br />DBCC FLUSHPROCINDB (@dbid)转载 2011-03-06 23:20:00 · 259 阅读 · 0 评论 -
newid()的妙用
<br />--生成测试数据<br />SET ANSI_NULLS ON<br />GO<br />SET QUOTED_IDENTIFIER ON<br />GO<br />SET ANSI_PADDING ON<br />GO<br />CREATE TABLE [dbo].[test](<br /> [name] [varchar](20) NULL,<br /> [quarter] [int] NULL,<br /> [profile] [int] NULL,<br />转载 2011-03-06 23:21:00 · 805 阅读 · 0 评论 -
其它
<br />--查看内存状态<br />dbcc memorystatus<br /><br />--查看哪个引起的阻塞,blk <br />EXEC sp_who active <br /><br />--查看锁住了那个资源id,objid<br />EXEC sp_lock <br /><br />--当前查询分析器SPID<br />--查询分析器的状态栏中可以看到<br />--比如sa(57),这就表示当前查询分析器SPID为57,这样在使用profile的时候就可以指定当前窗体进行监控<br /转载 2011-03-06 23:25:00 · 330 阅读 · 0 评论 -
SQL Server数据库服务器高性能设置
<br />数据库服务器主要用于存储、查询、检索企业内部的信息,因此需要搭配专用的数据库系统,对服务器的兼容性、可靠性和稳定性等方面都有很高的要求。<br /> 下面是进行笼统的技术点说明,为的是让大家有一个整体的概念,如果想深入可以逐个击破; <br /> 希望大家能一起补充完善。 <br /> <br /><!--[if !supportLists]-->一、<!--[endif]-->服务器规划:<br /><!--[if !supportLists]-->1.转载 2011-03-06 23:40:00 · 370 阅读 · 0 评论 -
简单实用SQL脚本Part:生成站点导航树形结构
<br />一、需求<br />我们通常的时候,都是先有站点地图,之后对URL的地址进行判断和导航的,那么我们是否可以根据所有收集到的URL来进行分解,从而生成出所有可能的地址,最主要的是要有一个层级的关系。<br />我们的数据一般都是如下图1所示的格式,那么我们如何在页面上展现出图2的效果呢?<br /> <br />(图1:原始表) <br /> <br />(图2:页面效果图) <br /> 其实就普通树形来说,ID与ParentID这两个字段是少不了的。 <br /> <br /> (转载 2011-03-06 23:42:00 · 344 阅读 · 0 评论 -
表复制
<br />insert into PhoneChange_Num ([IMSI],Num)<br />SELECT [IMSI]<br /> ,count([IMEI]) as num<br /> FROM [Test].[dbo].[PhoneChange] group by [IMSI] order by num desc <br /> <br /> <br /> <br />语法1:Insert INTO table(field1,field2,...) values(value1,va转载 2011-03-06 23:13:00 · 341 阅读 · 0 评论 -
利用带关联子查询Update语句更新数据
<br />--方法1:<br />Update Table1 set c = (select c from Table2 where a = Table1.a) where c is null <br /><br />--方法2:<br />update A<br />set newqiantity=B.qiantity<br />from A,B<br />where A.bnum=B.bnum <br /><br />--方法3:<br />update<br /> (select A.转载 2011-03-06 23:14:00 · 1399 阅读 · 0 评论 -
phpStudy mysql已停止
一直用的phpStudy开环环境,很方便, 今天突然 mysql无法启动。。。百度了很多方法都无法解决。。。突然想起是否是昨天清理数据库的时候删错了。。。 后来去另外一台电脑上重新装了一个phpStudy,把phpStudy\MySQL\data\ 下面默认的 test mysql两个库给拷贝过来,瞬间启动成功。。。。。手贱,动作快的杯具。。。原创 2015-11-19 10:48:19 · 4038 阅读 · 0 评论