随笔分类 -  数据库

批量删除存储过程和批量修改存储过程
摘要:修改:declare proccur cursor for select [name] from sysobjects where name like 'Foods_%'declare @procname varchar(100)declare @temp varchar(100)open proccurfetch next from proccur into @procnamewhile(@@FETCH_STATUS = 0)begin set @temp='kcb_'+@procname EXEC SP_RENAME @procname,@temp prin 阅读全文
posted @ 2011-07-10 13:12 生产力 阅读(669) 评论(0) 推荐(0)
视图和存储过程的区别
摘要:一直觉得这两个没区别,今天看别人在讨论,觉得说得很好,就抄一些过来存着。存储过程 当然是预先编译sql语句, 或让sql作某种特定程序,也可以提高效率视图 让用户提取和他们有关的数据, 有提高安全保安及提升query效率的意味最重要的是在服务器的存储和运行过程都几乎是一样的,二者都是以SQL语句集存储的,而且在运行之前都是经过编译的,也就是不用每次都重新编译,这样可以大大提高执行效率。顾名思义,其区别一个重在“过程”、一个重在“图”。也就是存储过程涉及很多的数据处理,整个是一个复杂的过程。它可以接收参数,相当于一个函数。主要目的是用来处理数据。而视图是把现在有数据组合成新的形式展示出来,相当于 阅读全文
posted @ 2011-05-30 12:04 生产力 阅读(8514) 评论(1) 推荐(5)
SQL SERVER中 ORDER BY也会偷懒
摘要:当使用TOP N(不加ORDER BY)时,SQLSERVER不会对数据做任何分析,到了N个直接截断。但如果你加上ORDER BY,也不一定会进行排序,因为SQLSERVER只在你WHERE子句限制的字段的值是不唯一的情况下排序。我举个例:比如你有一个表如下:名字 工资 ID张三 500 0李四 600 1赵五 700 2孙六 700 3田七 700 4王八 800 5如果SQL语句是:SELECT TOP 2 *FROM 表名WHERE 工资=700则出来的结果是:名字 工资 ID赵五 700 2孙六 700 3若SQL换成:SELECT TOP 2 *FROM 表名WHERE 工资=700 阅读全文
posted @ 2011-05-24 20:57 生产力 阅读(1818) 评论(2) 推荐(1)