sql方面
不懂love
这个作者很懒,什么都没留下…
展开
-
五种提高 SQL 性能的方法
有时, 为了让应用程序运行得更快,所做的全部工作就是在这里或那里做一些很小调整。啊,但关键在于确定如何进行调整!迟早您会遇到这种情况:应用程序中的 SQL 查询不能按照您想要的方式进行响应。它要么不返回数据,要么耗费的时间长得出奇。如果它降低了报告或您的企业应用程序的速度,用户必须等待的时间过长,他们就会很不满意。就像您的父母不想听您解释为什么在深更半夜才回来一样,用户也不会听你解释为什么查询耗费原创 2016-10-25 17:41:02 · 206 阅读 · 0 评论 -
Microsoft SQL SERVER 2008 R2 REPORT SERVICE 匿名登录
SQL SERVER 2008 R2 是微软目前最新的数据库版本,在之前的SQL SERVER 2005中,我们可以通过修改IIS对应的SSRS站点及SSRS的配置文件,将SSRS配置成匿名登录的方式,把报表集成到系统中,而现在SSRS2008 R2已经和IIS完全分离,所以说我们在沿用2005的配置方法是不可行的,为了让大家能够更好的了解,下面将先给大家简单介绍一下我在开发过程中,遇到的集成SS原创 2016-10-25 17:48:05 · 505 阅读 · 0 评论 -
SQL SERVER SA密码忘记,windows集成身份验证都登录不了不怎么办
有时候SQL SERVER 的SA强密码策略真的很烦人,不同的系统密码策略又不一样,导致经常会忘记密码,这不,这回我本机的SQL SERVER很久不用了,彻底忘了密码是什么。查了一下资料还是找到了解决办法,这是官方的原文:http://technet.microsoft.com/en-us/library/dd207004.aspx。解决步骤:1、用SQL Server 配置管理器打开后双击SQL原创 2016-10-25 17:47:45 · 1882 阅读 · 0 评论 -
sp_executesql介绍和使用
execute相信大家都用的用熟了,简写为exec,除了用来执行存储过程,一般都用来执行动态Sql sp_executesql,sql2005中引入的新的系统存储过程,也是用来处理动态sql的, 如: exec sp_executesql @sql, N'@count int out,@id varchar(20)', @cou out ,@id @sql为拼成的动态sql N'@coun原创 2016-10-25 17:47:37 · 354 阅读 · 0 评论 -
SQL Server 批量插入数据的两种方法
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters)。运行下面的脚本,建立测试数据库和表值参数。[c-sharp] view plaincopy--Create Data原创 2016-10-25 17:47:34 · 244 阅读 · 0 评论 -
将一个数据库表的数据复制到另一个数据库表
1.同一台服务器下,将数据库b下bb表的数据复制到数据库a的aa表中insert 数据库a..aa select * from 数据库b..bb2.仅仅复制一些字段内容insert 数据库a..aa(col1,col2,col3...) select col1,col2,col3... from 数据库b..bb 3.不同服务器下的复制不同服务器数据库之间的数据操作 --创建链接服务器 exec原创 2016-10-25 17:47:31 · 894 阅读 · 0 评论 -
如何把一张表里的数据update到另一张表
方法一:update 表A set 表A.编号=表B.编号 from 表B where 表A.id=表B.id方法二:update 表A set 表A.编号=表B.编号 from 表A,表B where 表A.id=表B.id原创 2016-10-25 17:47:16 · 6360 阅读 · 1 评论 -
设置显示sql语句执行时间
输入并运行下面的Transact-SQL命令: SET STATISTICS IO ON SET STATISTICS TIME ON 一旦上面的准备工作完成后,运行下面的查询: SELECT * FROM [order details] 如果同时运行上面所有的命令,你得到的输出就会与我的不同,也就很难搞清楚到底发生了什么事情。在运行上述的命令后,就会在结果窗口原创 2016-10-25 17:46:45 · 3024 阅读 · 0 评论 -
SQL中索引的原理
(一)深入浅出理解索引结构 实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下聚集索引和非聚集索引的区别: 其实,我们的汉语字典的正文本身就是一个聚集原创 2016-10-25 17:46:42 · 289 阅读 · 0 评论 -
MSSQL游标
在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句。但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案。 1.1 游标和游标的优点 在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从原创 2016-10-25 17:48:08 · 1097 阅读 · 0 评论 -
向一个表的列循环插入一年的日期
SELECT TOP 1000 Num=IDENTITY(INT,0,1) INTO Num FROM syscolumnsDECLARE @d1 DATETIME, @d2 DATETIME SELECT @d1 = '2015-04-01', @d2 = '2016-03-31' SELECT [day] = CONVERT(VARCHAR, DATEADD(dd, Num, @d1)原创 2016-10-25 17:48:11 · 2174 阅读 · 0 评论 -
WITH (NOLOCK)
缺点: 1.会产生脏读 2.只适用与select查询语句优点: 1.有些文件说,加了WITH (NOLOCK)的SQL查询效率可以增加33%。 2.可以用于inner join 语句脏读: 一个用户对一个资源做了修改,此时另外一个用户正好读取了这条被修改的记录,然后,第一个用户放弃修改,数据回到修改之前,这两个不同的结果就是脏读。详细内容: 要提升SQL的查询效能,一般来说大家会以建立索原创 2016-10-25 17:51:31 · 680 阅读 · 0 评论 -
sql按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便
sql代码如下:CREATE function Get_StrArrayStrOfIndex ( @str varchar(1024), --要分割的字符串 @split varchar(10), --分隔符号 @index int --取第几个元素 ) returns varchar(1024) as begin declare @location int declare @start int原创 2016-10-25 17:50:06 · 1419 阅读 · 0 评论 -
简单防sql注入
一、防止文本框注入js代码: //防止SQL注入 function AntiSqlValid(oField) { re = /select|update|delete|exec|count|'|"|=|;|>| if (re.test(oField.value)) { alert("请您不要在参数原创 2016-10-25 17:50:02 · 439 阅读 · 0 评论 -
日期加一年 SQL
用函数DateAdd(interval,number,date)加一年 则为 DateAdd(yy,1,getdate())减一年 则为 DateAdd(yy,-1,getdate())interval 必要。字符串表达式,是所要加上去的时间间隔。 number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。 date 必要。V原创 2016-10-25 17:48:34 · 22775 阅读 · 0 评论 -
T-SQL取分组最大值记录
分组最大值记录 比如 序号 名称 数量 1 A 20 2 A 10 1 B 20 2 B 40 3 B原创 2016-10-25 17:48:31 · 1391 阅读 · 0 评论 -
FOR XML PATH
简短小应用:SELECT stuff((select ',' + fieldname from tablename for xml path('')),1,1,'')这一整句的作用是将多行fieldname字段的内容串联起来,用逗号分隔。例如表fieldname-----------AAABBBCCC串联之后就是字符串: AAA,BBB,CCCfor xml path是SQL Server 20原创 2016-10-25 17:48:19 · 365 阅读 · 0 评论 -
mssql合并结果集合为字符串
原始数据: Select Distinct地区 From 客户 方法一:select STUFF((SELECT Distinct ','+地区 FROM 客户 FOR XML原创 2016-10-25 17:48:16 · 336 阅读 · 0 评论 -
SQL SERVER拼接字符串(字符串中有变量)
SQL SERVER拼接字符串(字符串中有变量)对我来说是一个难点,总是忘记规律,写下来以帮助记忆。一、拼接字符串(整个字符串不分割)步骤:首先在字符串的前后加单引号;字符串中的变量以'''+@para+'''在字符串中表示;若在执行时存在类型转换错误,则应用相应的类型转换函数,对变量进行类型转换(如cast()函数)。示例均采用northwind数据库。示例一:包含SQL拼接字符串的存储过程:C原创 2016-10-25 17:48:13 · 10180 阅读 · 2 评论 -
得出SQL执行速度的语句
在各个select语句前加:declare @d datetime set @d=getdate() 并在select语句后加: select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())原创 2016-10-25 17:46:39 · 222 阅读 · 0 评论 -
【转载】sql group by order by
order by是对字段进行排序,group by 是对字段进行分类,在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。比如,有一个表tt: A原创 2016-10-25 17:46:06 · 158 阅读 · 0 评论 -
sql语句
1、将一个表中的数据更新到另外一张表中:update Bs_PayOrderList set excess=Bs_User.balPrice from Bs_PayOrderList,Bs_User where Bs_User.ID=Bs_PayOrderList.userID and Bs_User.ID=20 and ordercode='1234566'原创 2016-10-25 17:44:03 · 157 阅读 · 0 评论 -
sql2008r2配置工具远程调用失败解决方法
前两天,装了VS2012后,打开SQL2008配置管理工具,发现SQL服务名称里什么也没有,只有一个提示:(如图) 上网搜了,试了很多方法,像什么把windows\system32\wbem下的framedyn.dll复制到system32目录下,还有照一个老外说的,下什么更新补丁,都没用!!想重装SQL2008,结果运行安装程序,变成了英文版(以前装显示的是中文原创 2016-10-25 17:43:11 · 596 阅读 · 0 评论 -
【转载】sql语句使用,内连接,外连接
sql查询语句的使用 例如,下面的语句查询testtable表中姓名为"张三"的nickname字段和email字段。 SELECT nickname,email FROM testtable WHERE (一)选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例原创 2016-10-25 17:42:34 · 551 阅读 · 0 评论 -
asp.net连接accessOLDB数据库访问类
//web.config页面 //OLDB数据访问类 /// Copyright (C) 2004-2008 LiTianPing /// 数据访问基础类(基于OleDb) /// 可以用户可以修改满足自己项目的需要。 ///原创 2016-10-25 17:41:29 · 564 阅读 · 0 评论 -
存储分页
本文转自:http://bbs.csdn.net/topics/380133635CREATE PROCEDURE proc_Page @Table VARCHAR(100), --表名 @Primarykey VARCHAR(100), --主键 @Condition VARCHAR(500), --查询条件 @PageNumber INT, --开始页数 @PageSize INT,原创 2016-10-25 17:41:23 · 154 阅读 · 0 评论 -
MS SQL Server查询优化方法(3)
35、在IN后面值的列表中,将出现最频繁的值放在最前面,出现得最少的放在最后面,减少判断的次数 36、当用SELECT INTO时,它会锁住系统表(sysobjects,sysindexes等等),阻塞其他的连接的存取。创建临时表时用显示申明语句,而不是 select INTO. drop table t_lxh begin tran selec原创 2016-10-25 17:41:12 · 185 阅读 · 0 评论 -
MS SQL Server查询优化方法(2)
21、用select top 100 / 10 Percent 来限制用户返回的行数或者SET ROWCOUNT来限制操作的行 22、在SQL2000以前,一般不要用如下的字句: "IS NULL", " , "!=", "!> ", "! , "NOT", "NOT EXISTS", "NOT IN",原创 2016-10-25 17:41:08 · 250 阅读 · 0 评论 -
MS SQL Server查询优化方法(1)
查询速度慢的原因很多,常见如下几种 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)原创 2016-10-25 17:41:05 · 305 阅读 · 0 评论 -
T-SQL视图操作
视图:是从一个或多个表中使用SELECT的FROM子句导出的。那些用来导出视图的表称为基表,视图也可以从一个或多个其他视图中产生。导出视图的SE LECT语句存放在数据库中,而与视图定义相关的数据并没有在数据库中另存一份,所以视图也称为虚表,通过视图看到的是它所基于的表的数据。视图的行为如同一个表,可以通过视图查询表的数据,或修改表的数据。视图的功能:?筛选表中的行?防止未经许可的用户访问敏感数据原创 2016-10-25 17:44:11 · 851 阅读 · 0 评论 -
【转载】sqlite新建表带主键自增
create table test ( [tkid] integer PRIMARY KEY autoincrement, -- 设置主键 [tktype] int default 0, [tableid] varchar (50), [createdate] datetime default (datetime('now', 'localtime')) -- 时间 );原创 2016-10-25 17:44:26 · 1061 阅读 · 0 评论 -
有关T-SQL的10个好习惯
1.在生产环境中不要出现Select * 这一点我想大家已经是比较熟知了,这样的错误相信会犯的人不会太多。但我这里还是要说一下。 不使用Select *的原因主要不是坊间所流传的将*解析成具体的列需要产生消耗,这点消耗在我看来完全可以忽略不计。更主要的原因来自以下两点: 扩展方面的问题 造成额外的书签查找或是由查找变为扫描 扩展方面的问题是当表中添加一个原创 2016-10-25 17:45:46 · 119 阅读 · 0 评论 -
SQL CTE能帮助我做什么
由于程序员所在公司环境不太一样,所以造成程序员在IT技能方面有比较大的差别。例如有些公司,程序员大多只关心业务逻辑处理或者是页面UI,当然我指的是web应用程序相关的程序员。因为有可能所有的底层数据都由其它同事给你提供,这样就造成一旦需要自己写数据库脚本查询时,那些难以想像的,丑陋的SQL就出来了,不过如果我们稍加注意,就会知道SQL 2005的CTE在很大程序上能解决这种境况,这就看程序员的自身原创 2016-10-25 17:45:43 · 766 阅读 · 0 评论 -
在T-SQL中使用临时表的注意事项
一、临时表的两种表现形式。在SQL Server数据库中,临时表主要有两种形式,分别为全局临时表与局部临时表。这两种表有很大的不同,主要体现在名字上、可见性上以及可用性上。具体来说,本地临时表的名字是以#符号开头的;而全局临时表则是以##两个#字符号开头。从可见性上来说,局部临时表是有当前用户创建的,并且只有当前用户的会话才可以访问。而对于全局表来说,只要这个临时表存在,那么用户创建会话后对所有的原创 2016-10-25 17:45:41 · 196 阅读 · 0 评论 -
T-sql一些不常用的语句
1.下面的语句列出指定表的所有列名 select name from syscolumns where id=object_id('你要查询的表名')2.查询数据库中所有类型 select name,xtype from systypes原创 2016-10-25 17:45:38 · 160 阅读 · 0 评论 -
mssql存储过程的一个例子
/*创建存储过程*/create proc [dbo].[Pro_AlertReturnStatus](/*设置一些全局变量*/ @Price numeric(18,2), @ID int, @impact int outPut )as/*设置一些局部变量*/declare @impact1 intdeclare @impact2 int/*事务开始*/begin tranupdate View_原创 2016-10-25 17:45:23 · 395 阅读 · 0 评论 -
sql server存储过程基础
什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 通俗来讲:存储过程其实就是能完成一定操作的一组SQL语句。那为什么要用存储过程呢?1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。2.当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合原创 2016-10-25 17:45:20 · 142 阅读 · 0 评论 -
数据库作业的执行
--每月执行的作业exec p_createjob @jobname='mm',@sql='select * from syscolumns',@freqtype='month'--每周执行的作业exec p_createjob @jobname='ww',@sql='select * from syscolumns',@freqtype='week'--每日执行的作业exec p_createj原创 2016-10-25 17:45:00 · 548 阅读 · 0 评论 -
SQL语句中CASE WHEN的使用实例
SQL中的CASE WHEN语句是经常要用到的,下面将结合实例,为您详解CASE WHEN语句的使用,供您参考,希望对您学习SQL语句能有所帮助。一张表数据如下 1900-1-1 胜 1900-1-1 胜 1900-1-1 负 1900-1-2 胜 1900-1-2 胜 写出一条SQL语句,使检索结果如下: 胜 负 1900-1-1 2 1 1900-1-2 2 0 我原创 2016-10-25 17:44:40 · 630 阅读 · 0 评论 -
mssql将字符串拆分为数组
Create function [dbo].[split](@SourceSql varchar(max),@StrSeprate varchar(10))returns @temp table(line varchar(max))asbegin declare @i int set @SourceSql = rtrim(ltrim(@SourceSql)) set @i = c原创 2016-10-25 17:52:27 · 3036 阅读 · 0 评论