zoukankan      html  css  js  c++  java
  • select * 替换写法

    实际开发中经常用到select * from table,往往需要知道具体的字段,这个时候再去数据库中翻或者查看数据字典比较麻烦。为了方便,自己特意写了一个小函数,只针对sqlserver哦。

     以下为函数代码:      

    create function f_selectall
    (   
        @ptablename VARCHAR(50),----表名 如SA_WL_LYTZ
        @split VARCHAR(50)  -----别名,如a
    )
    RETURNS VARCHAR(3000) 
    as
    BEGIN
        declare @split1 VARCHAR(50);
        declare @split2 VARCHAR(50);
        declare @sreturn VARCHAR(3000);
    
        if(@split is null)
          set @split1= ''
       ELSE
        set @split1= @split --select ltrim(RTRIM(@split)) 
    
        if( @split1 <> '')
              set @split2 = @split1+'.';
        ELSE
            set @split2 = @split1 ;
    
          set @sreturn = (select 'select '+cols+' from '+TABLE_NAME+' '+@split1 from 
                      (SELECT   DISTINCT TABLE_NAME,STUFF((SELECT ','+@split2+ COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS 
                      WHERE TABLE_NAME = A.TABLE_NAME FOR XML PATH('')),1,1,'') AS cols
                      FROM INFORMATION_SCHEMA.COLUMNS  AS A
                      where table_name = UPPER(@ptablename)) t);
    
        RETURN @sreturn
    END
    

     使用的时候只需: select  dbo.f_selectall('TABLE','a') ,即可。

       输出结果为:select a.col1,a.col2,a.col3 from TABLE a ;

       完美代替 select a.* from table a ;

       如果不想用别名a,直接空着即可。

       自用小工具,仅仅方便使用。

  • 相关阅读:
    Android系统启动过程分析
    android的logcat 用法整理
    git 使用详解(10) 远程分支
    android的logcat 用法整理
    android Binder工作流程
    android Binder工作流程
    git log 小结
    linux patch 命令小结
    windows 中 \r\n 区别于 类unix中的\n 疑问 迎刃而解
    Mysql Error Code : 1436 Thread stack overrun
  • 原文地址:https://www.cnblogs.com/iceriver315/p/9685562.html
Copyright © 2011-2022 走看看