Welcome 微信登录

首页 / 数据库 / SQLServer

Sql学习第三天——SQL 关于CTE(公用表达式)的递归查询使用

Sql学习第三天——SQL 关于CTE(公用表达式)的递归查询使用

关于使用CTE(公用表表达式)的递归查询----SQL Server 2005及以上版本 公用表表达式 (CTE) 具有一个重要的优点,那就是能够引用其自身,从而创建递归 CTE。递归 CTE 是一个重复执行初始 CTE 以返回数据子集直到获取完整结果集的公用表表达式。 当某个查询引用递归 CTE 时,它即被称为递归查询。递归查询通常用于返回分层数据,例如:显示某个组织图中的雇员或物料清单方案(其中父级产品有一个或多个组件,而那些组件可能还有子组件,或...
sqlserver中delete、update中使用表别名和oracle的区别

sqlserver中delete、update中使用表别名和oracle的区别

昨天发现程序中数据分析的结果不对,重新进行分析后,原数据仍在,有值的字段被累计。心说,不对啊,是重新生成记录后才分析的啊。难道忘了DELETE了?查代码,发现有删除语句。于是在查询分析器中执行,报错。反复试几次,明白了,Delete From不认表名别名!回头想下,当初程序改完后主要是在Oracle中测的,SQLServer一直没细测。之所以要用别名,是因为where条件中需要用到子查询写一些条件,下面不写那么复杂,仅说明一下问题。结论:(ORACLE适用...
sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法

sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法

这个问题的原因在于有用户连接了当前要做还原的数据库,这里的用户甚至包括当前要做还原的用户。解决办法就是关闭与要还原数据库的所有连接。脚本之家小编推荐的一个方法:到服务里面重启下sqlserver服务即可。问题一描述:SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样问题二描述:在对SQL Server数据库进行还原时,提示:System.Data.SqlClient.SqlError:因为数据库正在使用,所以无法获得对数据库的独占...
Sql学习第四天——SQL 关于with cube,with rollup和grouping解释及演示

Sql学习第四天——SQL 关于with cube,with rollup和grouping解释及演示

关于with cube ,with rollup 和 grouping通过查看sql 2005的帮助文档找到了CUBE 和 ROLLUP 之间的具体区别:CUBE 生成的结果集显示了所选列中值的所有组合的聚合。ROLLUP 生成的结果集显示了所选列中值的某一层次结构的聚合。再看看对grouping的解释:当行由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列的输出值为 1;当行不由 CUBE 或 ROLLUP 运算符添加时,该函数将导致附加列...
SQL Server游标的使用/关闭/释放/优化小结

SQL Server游标的使用/关闭/释放/优化小结

游标是邪恶的! 在关系数据库中,我们对于查询的思考是面向集合的。而游标打破了这一规则,游标使得我们思考方式变为逐行进行.对于类C的开发人员来着,这样的思考方式会更加舒服。正常面向集合的思维方式是:而对于游标来说:这也是为什么游标是邪恶的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能.同样的,在性能上,游标会吃更多的内存,减少可用的并发,占用宽带,锁定资源,当然还有更多的代码量……从游标对数据库的读取方式来说,不难看出游标为什么占用更多的资源...
SQL Server数据库中批量导入数据的四种方法总结

SQL Server数据库中批量导入数据的四种方法总结

在软件项目实施的时候,数据导入一直是项目人员比较头疼的问题。其实,在SQL Server中集成了很多成批导入数据的方法。有些项目实施顾问头疼的问题,在我们数据库管理员眼中,是小菜一碟。现在的重点就是,如何让用户了解这些方法,让数据导入变得轻松一些。 第一:使用Select Into语句 若企业数据库都采用的是SQL Server数据库的话,则可以利用Select Into语句来实现数据的导入。Select Into语句,他的作用就是把数据从另外一个数据库中...
数据库中两张表之间的数据同步增加、删除与更新实现思路

数据库中两张表之间的数据同步增加、删除与更新实现思路

分别创建增加、删除、更新的触发器(Trigger)来达到两张表之间数据同步的目的。 1:数据同步增加: 如有两张表——A表和B表,创建触发器使当A表插入数据后B表也同步插入数据。其中B表插入数据的字段需要同A表中的字段相对应。 复制代码 代码如下: CREATE TRIGGER 触发器名称 ON A表 AFTER INSERT AS BEGIN INSERT INTO B表(B表字段1,B表字段2,B表字段3) SELECT A表字段1,A表字段2,A表字...
真正高效的SQLSERVER分页查询(多种方案)

真正高效的SQLSERVER分页查询(多种方案)

Sqlserver数据库分页查询一直是Sqlserver的短板,闲来无事,想出几种方法,假设有表ARTICLE,字段ID、YEAR...(其他省略),数据53210条(客户真实数据,量不大),分页查询每页30条,查询第1500页(即第45001-45030条数据),字段ID聚集索引,YEAR无索引,Sqlserver版本:2008R2 第一种方案、最简单、普通的方法: 复制代码 代码如下: SELECT TOP 30 * FROM ARTICLE WHER...
sql lite 数据库之间表复制的方法

sql lite 数据库之间表复制的方法

现在的思路:打开一个目的库,打开一个源库,因为目的库中的某些表内容和源库的表内容不一致,所以需要把源库中的某些表导入到目的库中,步骤如下:1.通过sql lite打开目的库,然后选中目的库右键,弹出有个date transfer wizard 的菜单,单击后,打开此窗体,里面有二个选项,其中export为导出,import为导入,此时选中import选项。2.选中import选项后,对应下面资源有三个选项。(1)annother sqllite datab...
关于SQL 存储过程入门基础(变量)

关于SQL 存储过程入门基础(变量)

上一篇我们讲到了SQL存储过程的基本定义,怎么创建,使用,这篇就来讲一下变量的使用。变量分文局部变量和全局变量局部变量是@开头,全局变量是@@开头,这里我们主要讲局部变量,全局变量我们后面再讲。在c# 语言中,定义一个变量很简单,例如复制代码 代码如下:int i=0; --定义加赋值。在sql中,定义一个变量需要关键字DECLARE,还需要个特殊符号标记(@)表示是变量。看看简单的声明语法:复制代码 代码如下:Declare @Local_Var dat...
<< 281 282 283 284 285 286 287 288 289 290 >>