想用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
因为考虑到效率,最好不要用游标实现,大家帮我想想办法吧。
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
因为考虑到效率,最好不要用游标实现,大家帮我想想办法吧。
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
*/
SQL 2005 @vlanEnd 最大 2048
SQL 2000 @vlanEnd 最大 256
SELECT TOP 8000 id = IDENTITY(int, 1, 1) INTO # FROM syscolumns a, syscolumns b
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