Dearbook首页-->
名人堂-->邹建
选择合适的游标类型 (2007年5月13日发表)游标应少用, 但在一些情况下, 游标是最优的方案. 在使用游标时, 游标的类型是很重要的(但也是最容易忽视的问题), 本文简单描述了选择游标的重要性.
认识静态与动态游标 (2007年5月13日发表)静态(STATIC)游标创建将由该游标使用的数据的临时复本。对游标的所有请求都从tempdb 中的这一临时表中得到应答;因此,在对该游标进行提取操作时返回的数据中不反映对基表所做的修改,并且该游标不允许修改
动态(DYNAMIC) 游标会反映在滚动游标时对结果集内的各行所做的所有数据更改。行的数据值、顺序和成员身份在每次提取时都会更改。动态游标不支持ABSOLUTE 提取选项。
游标类型产生的数据检索问题 (2007年5月12日发表)将数据库升级到SQL 2005, 兼容性级别调整到90后, 发现一个游标出不来数据, 但单独执行游标定义的查询即可以出数据
无法在SQL 2005系统数据库中执行的T-SQL语句(XML处理) (2007年5月12日发表)在SQL 2005编写一个XML解析处理的函数, 在调用时居然发现无法在系统数据库上使用
使用TableDiff实用工具解决事务复制中的问题 (2006年12月28日发表)事务复制是数据同步中常用的一种手段,复制过程难免会遇到不少问题,就笔者遇到的问题而言,一般有两大类:一类是通过重新启动Distributor Agent即可解决的问题,另一类是因为Subscriber修改了数据,导致发布的数据有冲突,这类问题一般需要手工去修复。
TableDiff是SQL Server 2005的一个命令行实用工具,该工具可以比较两个表,并且生成数据同步的脚本。借助这个工具,可以很容易地修复两个表数据不一致的问题。
但如果应用该工具来解决事务复制中数据冲突的问题,则除了同...
实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除 (2006年9月18日发表)某个基础信息表,与系统中30多个表存在外键关系,当删除基础数据时,需要判断是否已经被用过,如果用过则更改标志位,如果没有用过则直接删除,如何能很好实现这个处理?最好能够自动适应表的变化
在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合 (2006年9月18日发表)在有限多的不大于100的正整数中,找出尽量多个相加起来值介于98~102之间的组合。
组合的个数限制在2 和3。
比如有数字(39,40,1,55,17,17……N)数字可以有重复。
找出的组合有(50,50),(21,41,39),(48,50)……M。在上面的数字在组合中每次只能出现一次(比如数字中40只出现过一次,那在组合中也只能出现一次。17出现过两次那在组合中最多两次)
SELECT 赋值与ORDER BY冲突的问题 (2006年9月18日发表)使用 SELECT 语句,轮询表中的数据,并且处理变量数据时,如果有ORDER BY语句,则得不到想要的结果,但去掉ORDER BY,结果正常
UPDATE 时, 如何避免数据定位处理被阻塞 (2006年9月17日发表)数据库PUBS中的authors表,想锁定CITY为aaa的记录,为什么执行下面的命令后,CITY为bbb的记录也被锁定了,无法进行UPDATE.
BEGIN TRANSACTION
SELECT * FROM authors
WITH (HOLDLOCK)
WHERE city=’aaa’
如何才能锁定CITY为AAA的记录,而且CITY为BBB的记录依然能SELECT和UPDATE?
SSIS处理导入数据时, 存在的更新, 不存在的插入 (2006年9月10日发表)当你把数据从其他数据库, 或者是文本文件之类的其他数据源导入到目的数据库时, 有时希望在导入的处理中, 能够实现'数据存在时更新, 不存在时导入'
在之前, 一般是通过导入临时表, 然后再判断处理导入正式表的, 在SQL Server 2005中, SSIS可以在导入处理时直接完成这种处理
邹建的更多言论
邹建的经典图书: