Welcome 微信登录

首页 / 数据库 / SQLServer

执行一条sql语句update多条记录实现思路

执行一条sql语句update多条记录实现思路

通常情况下,我们会使用以下SQL语句来更新字段值: 复制代码 代码如下: UPDATE mytable SET myfield="value" WHERE other_field="other_value"; 但是,如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?举个例子,我的博客有三个分类目录(免费资源、教程指南、橱窗展示),这些分类目录的信息存储在数据库表categories中,并且设置了显示顺序字段 display_orde...
SQL Server优化50法汇总

SQL Server优化50法汇总

查询速度慢的原因很多,常见如下几种:1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)2.I/O吞吐量小,形成了瓶颈效应。3.没有创建计算列导致查询不优化。4.内存不足5.网络速度慢6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量)7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷)8.sp_lock, sp_who, 活动的用户查看,原因是读写竞争资源。9.返回了不必要的行和列10.查询语句不好,没有优化可以通...
Replace关键字的妙用查询是否包含某个特定字符串

Replace关键字的妙用查询是否包含某个特定字符串

在sql server中Replace关键字主要是用来将字符串中的某个字符替换成别的字符,今天要逆向思维,它还可以用来查询是否包含某个特定字符串,例如给定下面数据集 期望从这个数据集中获取包含“aaa”字符的记录,注意第2条数据不是包含“aaa”,而是包含“aaaa”。期望的”“结果如下: 传统的思维肯定是想如何查出包含有3个a的字符串,有的人会像用like,但这样会连同4个a也查出来。这里我们就思考用Replace替换掉字符串中的“aaa”,如果能够替换...
深入解析MS-SQL锁机制

深入解析MS-SQL锁机制

锁的概述 一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致 并发控制的主要...
浅析Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁

浅析Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁

锁有两种分类方法。(1) 从数据库系统的角度来看锁分为以下三种类型: •独占锁(Exclusive Lock)独占锁锁定的资源只允许进行锁定操作的程序使用,其它任何对它的操作均不会被接受。执行数据更新命令,即INSERT、 UPDATE 或DELETE 命令时,SQL Server 会自动使用独占锁。但当对象上有其它锁存在时,无法对其加独占锁。独占锁一直到事务结束才能被释放。•共享锁(Shared Lock)共享锁锁定的资源可以被其...
完美解决SQL server2005中插入汉字变成问号的问题

完美解决SQL server2005中插入汉字变成问号的问题

关于SQL server2005中插入汉字变成问号的解决办法 1.右击你所建的数据库,点击“属性”,选择“选项”并点击。将其中的排序规则设置为:Chinese_PRC_CI_AS(选择下拉列表框即可设置),然后“确定“。2.在表中将你的汉字字段的数据类型设置为nvarchar型或ntext型,设置前最好先将表中的数据全部删除。(不要使用varchar或text型,因为它们只会继续使你的数据乱码)。 3.设置好后,关闭服务器,再重新启动,就可生效了。...
如何恢复数据库的账号 登录名/用户名等

如何恢复数据库的账号 登录名/用户名等

当我们重装系统,或者是重装数据库之后,当附加数据库之后,发现数据库里面 有用户名,但是在sqlserver里面没有 登陆名例如 先看 用户名 是有他上次系统的用户名的 现在我们先去添加这个登录名 点击取消 进入 查询分析器,选择你要修复的数据库sp_change_users_login "report" 这个可以查询当前数据库下的孤立用户 我们只需要选择当前数据库为你要修复的数据库,然后运行 sp_change_users_login "upda...
分享Sql日期时间格式转换

分享Sql日期时间格式转换

Sql server2000中使用convert来取得datetime数据类型样式(全)日期数据格式的处理,两个示例:CONVERT(varchar(16), 时间一, 20) 结果:2007-02-01 08:02/*时间一般为getdate()函数或数据表里的字段*/CONVERT(varchar(10), 时间一, 23) 结果:2007-02-01 /*varchar(10)表示日期输出的格式,如果不够长会发生截取*/语句及查询结果:复制代码 代码...
SQL实现递归及存储过程中In()参数传递解决方案详解

SQL实现递归及存储过程中In()参数传递解决方案详解

1.SQL递归在SQL Server中,我们可以利用表表达式来实现递归算法,一般用于阻止机构的加载及相关性处理。-->实现:假设OrganiseUnit(组织机构表)中主要的三个字段为OrganiseUnitID(组织机构主键ID)、ParentOrganiseUnitID(组织机构父ID)、OrganiseName(组织机构名称)复制代码 代码如下:with organise as(select * from OrganiseUnit where ...
sql server的一个有趣的bit位运算分享

sql server的一个有趣的bit位运算分享

sql server中没有bool类型,而是用bit类型来表示bool值,估计是为了节省存储空间。 可是要想实现取反操作似乎就麻烦写了,比如类似下面这样的语句是不行的:update category set visible=not visible where id=1,因为visible是bit类型,而不是bool类型。 一个很有趣的问题发生了,我们发现在Sql Server中的bit类型的数据-1可以表示1,于是我们可以将上面的语句改成: update ...
<< 131 132 133 134 135 136 137 138 139 140 >>