随笔分类 -  MSSQL数据库

摘要:MySQL中select * for update锁表的问题 由于InnoDB预设是Row-Level Lock,所以只有「明确」的指定主键,MySQL才会执行Row lock (只锁住被选取的资料例) ,否则MySQL将会执行Table Lock (将整个资料表单给锁住)。举个例子:假设有个表单p 阅读全文
posted @ 2016-11-21 14:58 V青山绿水 阅读(3459) 评论(0) 推荐(0) 编辑
摘要:文章导读拼SQL实现where in查询使用CHARINDEX或like实现where in 参数化使用exec动态执行SQl实现where in 参数化为每一个参数生成一个参数实现where in 参数化使用临时表实现where in 参数化like参数化查询xml和DataTable传参身为一名小小的程序猿,在日常开发中不可以避免的要和where in和like打交道,在大多数情况下我们传的参数不多简单做下单引号、敏感字符转义之后就直接拼进了SQL,执行查询,搞定。若有一天你不可避免的需要提高SQL的查询性能,需要一次性where in 几百、上千、甚至上万条数据时,参数化查询将是必然进行 阅读全文
posted @ 2013-08-23 15:04 V青山绿水 阅读(1108) 评论(0) 推荐(0) 编辑
摘要:大家一定在编写或分析一个复杂存错过程时,很希望能想VB代码一样进行调试,可惜SQL Server本身并没有提供调试器,我们可以利用VS来进行调试。 我写了一个简单的存储过程,介绍一下用VS调试存储过程的步骤。?1234567891011121314CreatePROCEDUREtestProcDebugger@id intASBEGINdeclare@testVal1 intset@testVal1=@iddeclare@empid varchardeclare@shipperid varcharselect@empid=shipperid,@shipperid=empid fromorder 阅读全文
posted @ 2013-05-25 10:27 V青山绿水 阅读(1682) 评论(0) 推荐(0) 编辑
摘要:Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进行操作的。 可以想象出,需要使用Merge的场景比如: 数据同步 数据转换 基于源表对目标表做Insert,Update,Delete操作使用Merge关键字的好处 首先是更加短小精悍的语句,在S.. 阅读全文
posted @ 2013-01-18 10:53 V青山绿水 阅读(12450) 评论(1) 推荐(2) 编辑
摘要:declare @sql varchar(8000),@table_id varchar(20)select @sql=''declare ytbelwxg cursor for select distinct table_id from 主表open ytbelwxgfetch next from ytbelwxg into @table_idwhile @@fetch_status=0 begin select @sql=@sql+'select 主表.id,主表.x,'+@table_id+'.y from 主表,'+@table_id+& 阅读全文
posted @ 2013-01-18 09:55 V青山绿水 阅读(331) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示