
sql-server
文章平均质量分 51
江南雪_158
数据库开发工程师
展开
-
not in与not exists的区别
在数据库的开发过程中很多时候是需要对数据进行过滤,使用比较多的会是not in 与not exist,但是在很多时候使用not in 会出现致命的BUG。以下对not in 与not exist进行对比:1、效率方面:如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比no原创 2015-12-04 10:13:50 · 1184 阅读 · 0 评论 -
XML类型的基本查询使用
创建表:create table DevRec(DevID varchar(10),XMLData xml)插入数据:insert into DevRec(DevID,XMLData)select '轴承D','53123'unionselect '轴承E','53127'unionselect '轴承F','51105' 1、query方法:query原创 2015-10-29 10:47:23 · 587 阅读 · 0 评论 -
追踪记录每笔业务操作数据改变的利器——SQLCDC
对于大部分企业应用来用,有一个基本的功能必不可少,那就是Audit Trail或者Audit Log,中文翻译为追踪检查、审核检查或者审核记录。我们采用Audit Trail记录每一笔业务操作的基本信息,比如操作的基本描述、操作时间、操作者等。对于一些安全级别比较高的应用,或者操作一些比较敏感的数据,我们甚至需要记录该笔业务操作引起的数据的改变。具体来说,这里的“数据改变”指的是每一条影响的记录在转载 2015-08-27 17:22:00 · 295 阅读 · 0 评论 -
SQL Server中的汇总功能
1、使用TABLESAMPLE来返回随机行:SELECT [SalesQuotaKey] ,[EmployeeKey] ,[DateKey] ,[CalendarYear] ,[CalendarQuarter] ,[SalesAmountQuota]FROM [AdventureWorksDW2008R2].[dbo]原创 2015-08-27 14:41:18 · 543 阅读 · 0 评论 -
sql中in和exists的区别效率问题(转)
in 和existsin是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询。一直以来认为exists 比in 效率高的说法是不准确的。如果查询的两个表大小相当,那么用in 和exists 差别不大。 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:例如:转载 2015-08-25 15:56:04 · 286 阅读 · 0 评论 -
视图中order by 的使用
在视图定义中不能单独使用order by,top和order by或 order by 和for xml 可以一起组合出现在视图的定义中;例如:CREATE VIEW TTAS SELECT * FROM TESTORDER BY ID这种定义会出现报错,原因为:TOP和FOR XML都是T-SQL的扩展,不是标准的SQL元素。TOP和ORDER BY以及OR原创 2015-08-20 16:58:19 · 2777 阅读 · 0 评论 -
SQL Server 2012中的新函数
--新分页方法(效率较高)select * from sys.columns order by object_id offset 5 rows fetch next 3 rows only--可创建类似Oracle 的Sequence 序列便于多表共用一个序列create sequence sid as int start with 1 increment by 1 MaxValu转载 2015-08-20 08:42:53 · 560 阅读 · 0 评论 -
数据库开发经典
1.按姓氏笔画排序:Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //从少到多 2.数据库加密:select encrypt('原始密码')select pwdencrypt('原始密码')select pwdcompare('原始密码','加密后密码')转载 2015-08-19 17:54:13 · 286 阅读 · 0 评论 -
数据库开发基础
一、基础1、说明:创建数据库CREATE DATABASE database-name 2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwin转载 2015-08-19 17:51:10 · 379 阅读 · 0 评论 -
当一个数据库插入事务由于错误被回滚时,被插入表中标识字段的值该发生怎么样的变化?
当一个数据库插入事务由于错误被回滚时,被插入表中标识字段的值该发生怎么样的变化?原创 2015-08-19 17:26:21 · 956 阅读 · 0 评论 -
SQL Server中的全局变量
全局变量名称 描述@@CONNECTIONS 返回 SQL Server 自上次启动以来尝试的连接数。@@CPU_BUSY 返回 SQL Server 自上次启动后的工作时间。@@CURSOR_ROWS 返回连接上打开的上一个游标中的当前限定行的数目,确定当其被调用时检索了游标符合条件的行数。@@DATEFIRST 针对会话返回 SET DATEFIRST 的当前值,SET DAT原创 2015-08-19 14:00:28 · 522 阅读 · 0 评论 -
存在即更新反之插入的三种防唯一键冲突和死锁的写法
存在即更新,反之插入的需求是很常见的,很多人没有注意并发的问题,高并发下为了避免唯一键冲突和死锁情况,下面提供三种写法,最后一个是sql server 2008及以后版本适用。示例表为:use tempdbgocreate table tb_1 (id int identity primary key,a varchar(50),dt datetime defaul转载 2015-08-18 20:33:22 · 682 阅读 · 0 评论