原文:update值与原值相同时,SQL Server会真的去update还是忽略呢? 考虑下面的情况: 当update值与原值相同时,SQL Server会真的去update还是忽略?例如: update tbname set name='abc' --name原来的值就是abc 再如: update tbname set name='abc' --name原来的值就是abc where name='abc' 接下来我们将实际测试: --Microsoft SQL Server 2008 R2…
一般都是写的单表update语句,很少写多表关联的update,但是事实上,在SQL Server中,update的多表连接更新和select的多表连接查询在使用的方法上其实并没有多大区别. 直接上一个例子就好了. update aaa set aaa.name = bbb.name from user_01 aaa left join user_02 bbb on aaa.code = bbb.code where bbb.name is not null; 和select语句基本上差不多的,…
前言 今天在导入数据到系统后需要根据时间排序对刚导入的TOP N条进行数据更新,之前没遇到过UPDATE TOP...ORDER BY,以此作为备忘录. SQL SERVER之UPDATE TOP...ORDER BY 我们利用AdventureWorks2012实例数据库来演示,一般情况我们如下一次性更新所有数据,如下: SELECT * FROM Production.Product 如上我们一次性将表Production.Product中的列ListPrice更新为1,结果如下: 但是我们…
今天同事要我修改服务器数据库里面的2条数据,查看服务器上的SQL Server数据库的时候,发现这几天数据没有添加成功,然后发现磁盘很快就满了,执行Update语句时,执行半天都提示还在执行,查询语句没有问题.这时就想到了应该是数据库文件过大的原因. 在数据库磁盘查看数据库的原始文件,数据库文件只有1G大小,但是日志文件.log文件却有20多G,在网上搜了一下资料,因为日志文件作用不大,于是对日志文件做了如下修改: 问题解决,磁盘空间变大,数据开始添加,Update语句很快执行完毕.…
最近在看红皮书<ASP.NET MVC 5 高级编程>时,为了更好理解,边看书,边打开源代码查看,在VS(Visual Studio 2015)中将源代码打开,发现数据库连接是关闭的,本想刷新将其变为连接打开, 谁知报错如下: 于是采用下面的折腾方式: 不管选择SQL Server数据库文件还是选择SQL Server都无效: 无奈之下,想到先将其删除,再添加,如下: 数据源选SQL Server 数据库文件 配置好之后,先测试连接,看是否正常 OK,一切正常,选择数据库→属性,查看连接信息…
标签:SQL SERVER/MSSQL/DBA/T-SQL好习惯/数据库/需要注意的地方/程序员/容易犯的错误/遇到的问题 概述 因为每天需要审核程序员发布的SQL语句,所以收集了一些程序员的一些常见问题,还有一些平时收集的其它一些问题,这也是很多人容易忽视的问题,在以后收集到的问题会补充在文章末尾,欢迎关注,由于收集的问题很多是针对于生产数据,测试且数据量比较大,这里就不把数据共享出来了,大家理解意思就行.   步骤 大小写 大写T-SQL 语言的所有关键字都使用大写,规范要求. 使用“;”…
update语句: 本例中由于看到的是update执行完的锁情况,因此无法看到IU锁,但其实针对要修改的数据页和索引页会先加IU锁,记录和键先加U锁,然后再转化为IX和X锁. 如果想要看到IU锁和U锁,可以在update中使用索引列的过滤条件但不更新索引列来实现,这样你可以通过sp_lock看到索引页和索引键上的IU/U锁. Ps:好像with (uplock)也可以看到U锁,这里提一下就懒得自己去测啦. 其上锁情况为: 可以看到加锁情况如下: 1.添加了表级IX锁 2.针对数据页3105添加了…
1. 1百万的测试数据的生成 declare @index int;  begin  set @index=0;  while @index<1000000  begin  insert into teptable values(@index,STR(@index)+'name',str(@index)+'appname');  set @index=@index+1;  end  end 2. merge into   sql 更新语句 -- 同库数据更新merge into teptable…
国庆假期终于有时间做点事情 因为平常工作会做些数据库操作 可能会有所操作失误  参考一下 方法一 ApexSql 2016一个软件 http://www.cnblogs.com/gsyifan/p/ApexSql_Log_2016_Crack.html 方法二 利用数据库的日志备份回滚 http://www.cnblogs.com/Spacecup/p/4155197.html 这个登录界面很简单和SSMS 差不多 填写相应的 就能登录 登录以后 选择相应的日志 上边在就是在线的日志 选择这个直…
CREATE TABLE #tp( headerNo VARCHAR(10), machineNO VARCHAR(10), descrption nVARCHAR(20), artNo VARCHAR(20), qty INT , repartno varchar(20) , repqty INT) insert INTO #tp SELECT 'HD01','0101520',N'电池出问题','102020',2,'102020',2insert INTO #tp SELECT 'HD01…
菜鸟一枚,今天做项目时,突然遇到一个问题: 在数据库中中存放的nvarchar类型的“时间”,例如:‘08:00’,而我需要进行时间的范围比较,这时就想到了将nvarchar类型转化为int类型. 这就有个问题,‘08:00’,中间有个“:”,这就比较讨厌啦. 要转化成数字,就必须是纯数字字串,也就是去掉多余的“:”,方法: cast(replace(字符串,'需要替换掉的字符','') as int) 这样就解决啦.…
原因:中间存在回车符或者换行符,所以要先将此符号替换掉: LTRIM(RTRIM(REPLACE(REPLACE( A,char(13),''),char(10),'') )) LTRIM(A) ---去换左边空格 RTRIM(A) ---去换右边空格 REPLACE( A,char(13),'')----将回车符替换为‘’ REPLACE( A,char(13),'')----将换行符替换为‘’…
子曰:“温故而知新,可以为师矣.”孔子说:“温习旧知识从而得知新的理解与体会,凭借这一点就可以成为老师了.“ 尤其是咱们搞程序的人,不管是不是全栈工程师,都是集十八般武艺于一身.不过有时候有些知识如果有很久没用了的话,就会忘记,甚至是忘的你一点都想不起来,尤其是一些基础的东西.所以我才打算写个"温故而知新"的系列博文出来,一来是这些基础的东西我比较健忘,以后方便自己翻阅:二来是希望可以帮助到一些刚入门的朋友.这个系列记录的所有知识点都是最最最(重要的事情说三遍)基础的知识.大部分都是我…
SQL update select结合语句详解及应用   QL update select语句 最常用的update语法是: 1 2 UPDATE TABLE_NAME SET column_name1 = VALUE WHRER column_name2 = VALUE 如果我的更新值Value是从一条select语句拿出来,而且有很多列的话,用这种语法就很麻烦 第一,要select出来放在临时变量上,有很多个很难保存. 第二,再将变量进行赋值. 列多起来非常麻烦,能不能像Insert那样,把…
工作中遇到的  update 的更新方法 以前update 表 set 列 = 新值     稍稍进阶    update 表 set 列 = (select  值 from 表 where ...) where ....  分析 这种效率低 , 笛卡尔积设定  消耗io 比较大 now   使用显示关联的方法                        update 表a  set a.字段1 =b.字段1  ,                         a.字段2 =b.字段2   …
介绍 从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的.如果数据类型是 整型(int),那么跳跃值为 1000:如果数据类型为 长整型(bigint),那么跳跃值为 10000.从我们的项目来看,这种跳跃问题是不能被接受的,尤其是展示在客户端的时候.这个奇怪的问题只在 SQL Server 2012 及更高的版本中存在,SQL Server 2012之前版本不存在此问题. 背景…
Sql Server -- 不使用别名 UPDATE tb_User SET tb_User.pass = '' FROM tb_User usr INNER JOIN tb_Address addr ON usr.nAddressFK = addr.nAddressID WHERE usr.id -- 使用别名 UPDATE usr SET usr.pass = '' FROM tb_User usr INNER JOIN tb_Address addr ON usr.nAddressFK =…
介绍 从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的.如果数据类型是 整型(int),那么跳跃值为 1000:如果数据类型为 长整型(bigint),那么跳跃值为 10000.从我们的项目来看,这种跳跃问题是不能被接受的,尤其是展示在客户端的时候.这个奇怪的问题只在 SQL Server 2012 及更高的版本中存在,SQL Server 2012之前版本不存在此问题. 背景…
SQL Server中常用的SQL语句   1.概述 2.查询概述 3.单表查询 4.连接查询 5.带有exists的相关子查询 6.SQL的集合操作 7.插入操作 8.删除操作 9.修改操作 10.数据定义 11.视图 1.概述 名词 笛卡尔积.主键.外键 数据完整性 实体完整性:主属性不能为空值,例如选课表中学号和课程号不能为空 参照完整性:表中的外键取值为空或参照表中的主键 用户定义完整性:取值范围或非空限制,例如:性别(男女),年龄(0-130) 表连接 自然连接:与等值连接(a.id=…
SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主键.外键 数据完整性 实体完整性:主属性不能为空值,例如选课表中学号和课程号不能为空 参照完整性:表中的外键取值为空或参照表中的主键 用户定义完整性:取值范围或非空限制,例如:性别(男女),年龄(0-130) 表连接 自然连接:与等值连接(a.id=b.id)相比,连接后的表只有一列id,而不是两列…
概述 SQL Server 2014被号称是微软数据库的一个革命性版本,其性能的提升的幅度是有史以来之最. 可更新的列存储索引作为SQL Server 2014的一个关键功能之一,在提升数据库的查询性能方面贡献非常突出.据微软统计,在面向OLAP查询统计类系统中,相比其他SQL传统版本的数据库,报表查询的性能最大可提升上十倍. 下面我们从存储的角度来了解下SQL Server 2014的可更新列存储索引. 什么是列存储 微软为了提升SQL Server的查询性能,更好的支持大数据分析,早在SQL…
一.数据库完整性概述   1.数据库的完整性:   ①数据库的完整性是指数据的正确性和相容性 ②数据库完整性是防止不合语义或不正确的数据进入数据库 ③完整性体现了是否真实地反映现实世界   例:  学生的年龄必须是整数,取值范围为14-29: 学生的性别只能是男或女: 学生的学号一定是唯一的: 学生所在的系必须是学校开设的系:     2.DBMS维护数据库完整性的机制:   ①提供定义完整性约束条件的机制 DBMS应提供定义数据库完整性约束条件,并把它们存入数据库中. ②提供完整性检查的方法…
1.概述 名词 笛卡尔积.主键.外键 数据完整性 实体完整性:主属性不能为空值,例如选课表中学号和课程号不能为空 参照完整性:表中的外键取值为空或参照表中的主键 用户定义完整性:取值范围或非空限制,例如:性别(男女),年龄(0-130) 表连接 自然连接:与等值连接(a.id=b.id)相比,连接后的表只有一列id,而不是两列(a.id和b.id). 半连接:与等值连接(a.id=b.id)相比,连接后的表只有A表的列,被B表“多次匹配”列会显示为一行. 左外连接:left join 右外连接:…
学习作业2: 问题1:主键都有哪些方式?   问题2:本次实战案例建立的主键采用哪种方式?   问题3:猜猜金蝶K3WISE建立的主键采用哪种方式?   问题4:谈谈手工主键增长设置具体实现思路?(选答)   问题5:GUID主键是啥玩意?(选答)   ============================================= ============================================= 知识点: 1.创建主键的三种方法 方法一: CREATE TA…
c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings name="  " connectionString="  "></connectionStrings >, connectionString代表数据库链接字符串,name代表你想要引用的时候查找的名称.(其实asp里的web.config配置方式也跟这…
1.插入语句 INSERT INTO 1.1.用 INSERT 插入单行数据 1.2.用 INSERT 插入多行数据 1.3.用 INSERT 插入子查询结果行 1.4.INSERT 小结及特殊字段插入方法 2.删除语句 DELETE 2.1.用 DELETE 删除表中指定行 2.2.用 TRUNCATE TABLE 高效清空表 3.更新语句 UPDATE 4.合并语句 MERGE 5.用 TOP 子句限制受影响的行 6.用 OUTPUT 子句返回受影响的数据 7.本文小结 毋庸置疑,开发者最常…
    在SQL Server中,子查询可以分为相关子查询和无关子查询,对于无关子查询来说,Not In子句比较常见,但Not In潜在会带来下面两种问题: 结果不准确 查询性能低下       下面我们来看一下为什么尽量不使用Not In子句.   结果不准确问题     在SQL Server中,Null值并不是一个值,而是表示特定含义,其所表示的含义是"Unknow",可以理解为未定义或者未知,因此任何与Null值进行比对的二元操作符结果一定为Null,包括Null值本身.而在S…
Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值执行计算并返回单一的值.聚合函数对一组值执行计算,并返回单个值.除了 COUNT 以外,聚合函数都会忽略空值. 聚合函数经常与 SELECT 语句的 GROUP BY 子句一起使用.   v1.写在前面 如果有对Sql server聚合函数不熟或者忘记了的可以看我之前的一片博客.sql server…
在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间. 从让人眼花缭乱的客户端使用连接,通过到处分布的网络,尤其是互联网,关系数据库在各种应用程序里广泛使用.这使数据对任何人,在任何地方都可访问.数据库可以保存人类知识的很大部分,包括高度敏感的个人信息和让国际商务工作的关…
事物处理   事务是SQL Server中的单个逻辑单元,一个事务内的所有SQL语句作为一个整体执行,要么全部执行,要么都不执行. 事务有4个属性,称为ACID(原子性.一致性.隔离性和持久性)   原子性   事务必须是原子工作单元.对于其数据修改,要么全都执行,要么全都不执行. 一致性  事务在完成时,必须使所有的数据都保持一致状态. 隔离性  由并发事务所做的修改必须与任何其他并发事务所做的修改隔离. 持久性  事务完成之后,它对于系统的影响是永久性的.       事务分类   按事务的…