易网时代-编程资源站
Welcome
首页
/
数据库
/
SQLServer
SQL语句执行顺序详解
2017-02-05
15
我们做软件开发的,大部分人都离不开跟数据库打交道,特别是erp开发的,跟数据库打交道更是频繁,由于SQL 不同于与其他编程语言的最明显特征是处理代码的顺序。在大数编程语言中,代码按编码顺序被处理,但是在SQL语言中,第一个被处理的子句是FROM子句,尽管SELECT语句第一个出现,但是几乎总是最后被处理。 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回 给调用...
SqlServer异常处理常用步骤
2017-02-05
19
SQL Server常见的问题主要是SQL问题造成,常见的主要是CPU过高和阻塞。一、CPU过高的问题1、查询系统动态视图查询执行时间长的sql语句WITH ProcessCTE(blocked) AS(SELECT spid FROM sys.sysprocesses WHERE cpu>500)SELECT distinct a.* FROM ( SELECT TEXT,AA.* FROM sys.sysprocesses AACROSS APP...
数据库触发器DB2和SqlServer有哪些区别
2017-02-05
18
大部分数据库语句的基本语法是相同的,但具体到的每一种数据库,又有些不一样,例如触发器,DB2和SQL Server两种很大的不同。例如DB2的一个触发器:CREATE TRIGGER EAS.trName NO CASCADE BEFORE insert //插入触发器ON eas.T_user REFERENCING NEWAS N_ROW //把新插入的数据命名为N_ROWFOR EACH ROW MODE DB2SQL //每一行插入数据都出发此操作...
SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)
2017-02-05
16
Sqlserver 获取每组中的第一条记录在日常生活方面,我们经常需要记录一些操作,类似于日志的操作,最后的记录才是有效数据,而且可能它们属于不同的方面、功能下面,从数据库的术语来说,就是查找出每组中的一条数据。下面我们要实现的就是在sqlserver中实现从每组中取出第一条数据。例子我们要从上面获得的有效数据为:对应的sql语句如下所示:select * from t1 t where id = (select top 1 id from t1 wher...
sqlserver四舍五入使用round函数及cast和convert函数
2017-02-05
15
引言 今天和测试沟通一个百分比计算方式时遇到一个问题, 我在存储过程里用到了强转CAST(32.678 AS DECIMAL(5,1)) 我认为该方式只会保留一位小数,我给测试的回复是我并没有用到四舍五入函数,数据也没有四舍五入,而测试说他们自己验证后觉的数据是经过四舍五入了的。 想到这里于是我再试了试存储过程的每个计算点,才发现了这个问题。ROUND 那么用到四舍五入并且保留小数点时我们肯定会首选ROUND函数, 如果字段的数据类型是decimal(18...
SQL Server将一列的多行内容拼接成一行的实现方法
2017-02-05
18
下面大家先看下示例代码:示例昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 :类别名称AAA企业1AAA企业2AAA企业3BBB企业4BBB企业5我想把这个表变成如下格式:类别名称AAA企业1,企业2,企业3BBB企业4,企业5一开始挺头疼的(会了的肯定没有这种感觉,不会那必须是头疼啊(*^__^*) ),从网上找了点资料,算是找到一种比较简单方便的方...
日常收集整理SqlServer数据库优化经验和注意事项
2017-02-05
16
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。优化数据库的注意事项:1、关键字段建立索引。2、使用存储过程,它使SQL变得更加灵活和高效。3、备份数据库和清除垃圾数据。4、SQL语句语法的优化。(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号)5、清理删除日志。SQL语句优化的基本原则:1、使用索引来更快地遍历表。缺省情况下建立的索引是非群集...
浅析SQL数据操作语句
2017-02-05
18
SQL 中的运算符1算术运算符:+:加运算,求两个数或表达式想加的和-:减运算,求两个数或表达式相减的差*,乘运算,求两个数或表达式相乘的积/:除运算,求两个数或表达式相除的商%:取模运算,求两个数或表达式相除的余数2.赋值运算=:把一个数或表达式赋值给另一个标量.3.比较运算符=:等于 >大于 < 小于 <>不等于 >= 大于等于 <=小于等于 !=不等于4.逻辑运算符AND :当且仅当两个布尔表达式为true时,返回...
SQL SERVER调用存储过程小结
2017-02-05
15
在SQL Server数据库的维护或者Web开发中,有时需要在存储过程或者作业等其他数据库操作中调用其它的存储过程,下面介绍其调用的方法一、SQL SERVER中调用不带输出参数的存储过程SQL 代码--存储过程的定义create procedure [sys].[sp_add_product] (@m_viewcount int = 0 ,@m_hotcount int = 0)asgo --存储过程的调用 declare @m_viewcount in...
在sqlserver中如何使用CTE解决复杂查询问题
2017-02-05
18
最近,同事需要从数个表中查询用户的业务和报告数据,写了一个SQL语句,查询比较慢:Select S.Name,S.AccountantCode,(Select COUNT(*) from (Select Distinct BusinessBackupId from Biz_BusinessBackupCustomer where Id in (Select BusinessBackupCustomerId from Rpt_RegistForm where...
使用SqlServer CTE递归查询处理树、图和层次结构
2017-02-05
16
CTE(Common Table Expressions)是从SQL Server 2005以后版本才有的。指定的临时命名结果集,这些结果集称为CTE。 与派生表类似,不存储为对象,并且只在查询期间有效。与派生表的不同之处在于,CTE 可自引用,还可在同一查询中引用多次。使用CTE能改善代码可读性,且不损害其性能。递归CTE是SQL SERVER 2005中重要的增强之一。一般我们在处理树,图和层次结构的问题时需要用到递归查询。CTE的语法如下 WITH ...
日常收集常用SQL查询语句大全
2017-02-05
18
常用sql查询语句如下所示:一、简单查询语句1. 查看表结构SQL>DESC emp;2. 查询所有列SQL>SELECT * FROM emp;3. 查询指定列SQL>SELECT empmo, ename, mgr FROM emp;SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项4. 查询指定行SQL>SELECT * FROM emp WHERE job="CLERK";5. 使用...
SQL Server数字开头的数据库表名的解决方法
2017-02-05
16
今天遇到了个郁闷的问题,关于数据库表名的问题。 SQL Server的数据库的表名可以用数字开头,但是在查询的时候,不能直接写表名,如下: select * form 1_tablename 在执行过程中,报错。但是给表名加上中括号,就可以了,如下: select * from [1_tablename] 用VS中的DataSet开发时,会自动生成SQL语句,但是生成的SQL语句中,有的加上方括号,但是有的没有加,这在程序执行过程中,就不能确定语句的正确性...
sql server 创建临时表的使用说明
2017-02-05
16
临时表产生:A: SELECT INTO和B:CREATE TABLE + INSERT INTO1. A 要比B 快很多。但是A会锁定tempdb的SYSOBJECTS、SYSINDEXES、SYSCOLUMNS表,在多用户并发的时候,容易产生阻塞其他的进程。2. 在并发系统中是用B. 大数量的单个语句中,使用A.创建临时表的方法: 方法一: create table #临时表名(字段1 约束条件, 字段2 约束条件, .....) create tab...
sql的临时表使用小结
2017-02-05
16
1、创建方法:方法一:create table TempTableName或select [字段1,字段2,...,] into TempTableName from table方法二:create table tempdb.MyTempTable(Tid int)说明:(1)、临时表其实是放在数据库tempdb里的一个用户表;(2)、TempTableName必须带“#”,“#"可以是一个或者两个,以#(局部)或##(全局)开头的表,这种表在会话期间存在...
sql server中判断表或临时表是否存在的方法
2017-02-05
18
1、判断数据表是否存在方法一:use yourdb;goif object_id(N"tablename",N"U") is not nullprint "存在"else print "不存在"例如:use fireweb;goif object_id(N"TEMP_TBL",N"U") is not nullprint "存在"else print "不存在"方法二:USE [实例名] GO IF EXISTS (SELECT * FROM dbo.Sy...
SQL Server 表变量和临时表的区别(详细补充篇)
2017-02-05
16
一、表变量 表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约束不能在表变量中使用)。定义表变量的语句是和正常使用Create Table定义表语句的子集。只是表变量通过DECLARE @local_variable语句进行定义。 表变量的特征:1.表变量拥有特定作用域(在当前批处理语句中,但不在任何当前批处理语句调...
针对distinct疑问引发的一系列思考
2017-02-05
15
有人提出了这样一个问题,整理出来给大家也参考一下假设有如下这样一张表格:这里的数据,具有如下的特征:在一个DepartmentId中,可能会有多个Name,反之也是一样。就是说Name和DepartmentId是多对多的关系。现在想实现这样一个查询:按照DepartmentID排完序之后(第一步),再获取Name列的不重复值(第二步),而且要保留在第一步后的相对顺序。以本例而言,应该返回三个值依次是:ACB我们首先会想到下面这样一个写法select dis...
Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环
2017-02-05
17
用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理==================DECLARE @A1 VARCHAR(10),@A2 VARCHAR(10),@A3 INTDECLARE CURSOR YOUCURNAME FOR SELECT A1,A2,A3 FROM YOUTABLENAMEOPEN YOUCURNAMEfetch next from youcurname into @a1,@a2,@a3w...
SQL Server创建数据库和数据表的相关约束实现方法
2017-02-05
18
本文分析了SQL Server创建数据库和数据表的相关约束实现方法。分享给大家供大家参考,具体如下:创建约束语法如下:CREATE DATABASE [test]ON(NAME=N"test",FILENAME=N"d:SQL2kt_Data est.mdf",SIZE=3mb,MAXSIZE=UNLIMITED,FILEGROWTH=1MB)LOG ON(NAME=N"test_log",FILENAME=N"d:SQL2kt_Data est_log....
<<
151
152
153
154
155
156
157
158
159
160
>>
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图