SQL循环26个字母插入到一个表中

开发过程中,需要用到26个字母的一个临时表,一开始想到的方法如下(SQL Server 2008 R2执行):

代码
IF   OBJECT_ID ( ' #TempDriveInfo ' IS   NOT   NULL
        
DROP   TABLE  #TempDriveInfo
    
CREATE   TABLE  #TempDriveInfo 
     (   
        
[ DriveInfoId ]   TINYINT   IDENTITY   PRIMARY   KEY   NOT   NULL ,
        
[ DriveName ]   NVARCHAR ( 10 )    
     )  
     
INSERT   INTO   #TempDriveInfo ( [ DriveName ] VALUES ( ' A ' ),( ' B ' ),( ' C ' ),( ' D ' ),( ' E ' ),( ' F ' ),( ' G ' ),( ' H ' ),( ' I ' ),( ' J ' ),( ' K ' ),( ' L ' ),( ' M ' ),( ' N ' ),( ' O ' ),( ' P ' ),( ' Q ' ),( ' R ' ),( ' S ' ),( ' T ' ),( ' U ' ),( ' V ' ),( ' W ' ),( ' X ' ),( ' Y ' ),( ' Z ' )
     
SELECT   *   FROM  #TempDriveInfo  

 

上面这个方法,虽然没有什么问题,但始终觉得不好,还是想到SQL Server的CHAR()函数,把INSERT语句改了:

代码
INSERT   INTO   #TempDriveInfo ( [ DriveName ] VALUES  ( CHAR ( 65 )),( CHAR ( 66 )),( CHAR ( 67 )),( CHAR ( 68 )),( CHAR ( 69 )),( CHAR ( 70 )),( CHAR ( 71 )),( CHAR ( 72 )),( CHAR ( 73 )),( CHAR ( 74 )),( CHAR ( 75 )),( CHAR ( 76 )),( CHAR ( 77 )),( CHAR ( 78 )),( CHAR ( 79 )),( CHAR ( 80 )),( CHAR ( 81 )),( CHAR ( 82 )),( CHAR ( 83 )),( CHAR ( 84 )),( CHAR ( 85 )),( CHAR ( 86 )),( CHAR ( 87 )),( CHAR ( 88 )),( CHAR ( 89 )),( CHAR ( 90 ))

 

经上面的修改,可以实现相同的结果,还是觉得它很繁杂一样,不够简洁,想到它是连续性,想到使用循环方法。

代码
DECLARE   @FirstCapitalLetters   INT   =   65      
WHILE   @FirstCapitalLetters   <=   90
BEGIN
    
INSERT   INTO   #TempDriveInfo ( [ DriveName ] VALUES  ( CHAR ( @FirstCapitalLetters ))
    
SET   @FirstCapitalLetters   =   @FirstCapitalLetters   +   1
END

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值