zoukankan      html  css  js  c++  java
  • sqlserver中使用查询分析器的一点小技巧

    begin tran
    DROP proc sp_alterProc
    GO

    /*
     说明:修改某一存储过程,可以是视图(这两者用得最多,当然也可以扩展为其他的,如触发器)
     用途:针对经常写存储过程的人,使用在查询分析器中,在查询分析器的“工具-〉自定义”中设一快捷键(我使用的Ctrl+9),存储过程设为"sp_alterProc"(注意:前后都不能有空格)
      在查询分析器的编辑窗口中选中某一存储过程的名字,按设定的快捷键,可显示出该存储过程的完整代码,
      这样可以以最快的方式打开并修改存储过程,提高修改存储过程的速度,不需要手动去找到某一存储过程,然后打开。(强烈推荐)
     作者:yx
    */

    CREATE  proc sp_alterProc
     @procName varchar(255)

    as
     
     set nocount on

     create table #t(a nvarchar(255))

     /*之所以要先删除存储过程是因为无法得到存储过程的修改时间,如果删除再创建就可以将创建时间当成是修改时间,这样就知道存储过程好久被修改过了*/ 

     insert into #t(a)

      select 'begin tran'
      union
      select case when exists(select * from sysobjects where name = @procName and xtype = 'V') then 'DROP view ' else 'DROP proc ' end + @procName
      
      union
      
      select 'GO'
     
     
      insert into #t(a) exec sp_helptext @procName

     insert into #t(a)
      
      select 'GO'
      union
      
      select 'if @@error<>0 rollback tran else commit tran'

     /*如果直接select * from #t将输出结果显示为表格,有的字符会被转化,比如TAB变成了空格,使用游标的目的是防止这些字符被转变,然后好拷贝、粘贴、修改*/

     declare @sql nvarchar(255) /*不管一行代码多长都能显示出来。为什么要定义成nvarchar(255)可以查看sp_helptext的源代码*/

     declare mycursor cursor for select a from #t

     open mycursor

     fetch next from mycursor into @sql

     while @@fetch_status = 0 begin

      print @sql

      fetch next from mycursor into @sql

     end 

     close mycursor

     deallocate mycursor
     
     
     drop table #t

     set nocount off


    GO
    if @@error<>0 rollback tran else commit tran


    begin tran
    DROP proc sp_select
    GO
    /*
     说明:显示某一表或视图的数据
     用途:针对经常写存储过程的人,使用在查询分析器中,在查询分析器的“工具-〉自定义”中设一快捷键(我使用的Ctrl+7),
      在查询分析器的编辑窗口中选中某一表的名字,按设定的快捷键,可显示出该表的所有数据,
      这样可以以最快的方式打开表的数据,不需要手动去找到某表,然后再打开。(强烈推荐)
     作者:yx
    */
    create proc sp_select
     @tableName varchar(255)
    as
     exec('select * from ' + @tableName)
    GO
    if @@error<>0 rollback tran else commit tran

  • 相关阅读:
    pointcut通配符
    Java设计模式-建造者(Builder)模式
    mybatis 初步使用(IDEA的Maven项目, 超详细)
    静态代理和动态代理
    Java 多线程(五)之 synchronized 的使用
    Java 多线程(四)之守护线程(Daemon)
    HashMap 源码解析(一)之使用、构造以及计算容量
    Java 多线程(三)之线程状态及其验证
    Java 多线程(二)之 Thread 优先级
    Java 多线程之 Thread 类 和 Runnable 接口初步使用
  • 原文地址:https://www.cnblogs.com/netwom/p/945003.html
Copyright © 2011-2022 走看看