想用SQL写这样一个字符串,
 service-port 0 vlan 373 eth 0/1/1 user-vlan untagged  rx-cttr 6 tx-cttr 6
 service-port 1 vlan 374 eth 0/1/2 user-vlan untagged  rx-cttr 6 tx-cttr 6 
 service-port 2 vlan 375 eth 0/1/3 user-vlan untagged  rx-cttr 6 tx-cttr 6
 service-port 3 vlan 376 eth 0/1/4 user-vlan untagged  rx-cttr 6 tx-cttr 6
.....其中373,374,375,376 ... 是变量,从2个参数传入 @vlanBegin, @vlanEnd
比如@vlanBegin=373,@vlanEnd=350,就是从373顺序写到350
因为考虑到效率,最好不要用游标实现,大家帮我想想办法吧。

解决方案 »

  1.   

    declare @vlanBegin int
    declare @vlanEnd intset @vlanBegin = 373
    set @vlanEnd = 376select 'service-port 0 vlan '+cast(number as varchar(10))+' eth 0/1/1 user-vlan untagged  rx-cttr 6 tx-cttr 6' 
    from master..spt_values where number between @vlanBegin and @vlanEnd 
    --========================结果
    /*
    service-port 0 vlan 373 eth 0/1/1 user-vlan untagged  rx-cttr 6 tx-cttr 6
    service-port 0 vlan 374 eth 0/1/1 user-vlan untagged  rx-cttr 6 tx-cttr 6
    service-port 0 vlan 375 eth 0/1/1 user-vlan untagged  rx-cttr 6 tx-cttr 6
    service-port 0 vlan 376 eth 0/1/1 user-vlan untagged  rx-cttr 6 tx-cttr 6
    */
      

  2.   

    注:
    SQL 2005 @vlanEnd 最大 2048
    SQL 2000 @vlanEnd 最大 256
      

  3.   

    倒序的话,颠倒下参数就行了。 order by 一下就行了。
      

  4.   

    需要更多的数字的话
    SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns b
      

  5.   

    service-port 0 vlan 373 eth 0/1/1 user-vlan untagged  rx-cttr 6 tx-cttr 6 
    service-port 1 vlan 374 eth 0/1/2 user-vlan untagged  rx-cttr 6 tx-cttr 6 
    service-port 2 vlan 375 eth 0/1/3 user-vlan untagged  rx-cttr 6 tx-cttr 6 
    service-port 3 vlan 376 eth 0/1/4 user-vlan untagged  rx-cttr 6 tx-cttr 6 
    ..... vlan后面有一个373,374,375,它的大小是一个整数范围,由SP传入的参数来控制
    比如传入5-9就是写
    service-port 0 vlan 5 eth 0/1/1 user-vlan untagged  rx-cttr 6 tx-cttr 6 
    service-port 1 vlan 6 eth 0/1/2 user-vlan untagged  rx-cttr 6 tx-cttr 6 
    service-port 2 vlan 7 eth 0/1/3 user-vlan untagged  rx-cttr 6 tx-cttr 6 
    service-port 3 vlan 8 eth 0/1/4 user-vlan untagged  rx-cttr 6 tx-cttr 6 
    service-port 3 vlan 9 eth 0/1/5 user-vlan untagged  rx-cttr 6 tx-cttr 6