有二十几个变量,想在循环中分别以用变量名来调用其数值,如何使@M1+1来调用M2呢?
DECLARE @M1 NUMERIC,@M2 NUMERIC @M3 NUMERIC....
SET @M1=30000
SET @M2=50000
SET @M3=8000
SET @M4=2000
SET ....
SET @M20=3000
SET @J=1000
WHILE @J<@M1
BEGIN
INSERT SSS SELECT * FROM BBB
DECLARE @M1 NUMERIC,@M2 NUMERIC @M3 NUMERIC....
SET @M1=30000
SET @M2=50000
SET @M3=8000
SET @M4=2000
SET ....
SET @M20=3000
SET @J=1000
WHILE @J<@M1
BEGIN
INSERT SSS SELECT * FROM BBB
解决方案 »
- Access与SQL Server在安全方面的基本区别
- 关于int型的自动编号问题
- 求一个对我来说是超难的SQL语句
- 探讨一个多表插入的算法
- 求个带返回参数的SQL存储过程,顺便在给个游标的例子,谢了,呵呵
- 谁会用Excel透视表?一个难题!!
- 这条SQL语句该如何写?请达人相教,谢谢
- 是以int型数据记录时间段的,如何求得时间差(小时数)
- 关于SQL server2000的日期问题,小弟在线等待,快来
- sql小问题:sql>c/2/1 ;只能把上一条命令sql>insert into tablename values(2,22,222)中第一个2改为1,可否用一条命令把所有的2改为1?或同时把2,22改成1,11?或同时把2,222改成1,111?
- 引用变量名
- 请进:关于SQL中NULL的一个问题
declare @sql varchar(500)
declare @j int
set @j=0
while @j<20
begin
set @sql = ' declare @T'+ convert(varchar(5),@j)+' varchar(10) set @T'+ convert(varchar(5),@j)+ ' = ------“想要赋的值”
exec(@sql)
set @j=@j+1
end可以循环声明、使用变量,但是有一个限制就是:此变量不能在外部使用,想要使用此变量只能在@sql里用exec(@sql)使用
declare @j int
set @j=0
while @j<20
begin
set @sql = ' declare @T'+ convert(varchar(5),@j)+' varchar(10) set @T'+ convert(varchar(5),@j)+ ' =' ------“想要赋的值”
exec(@sql)
set @j=@j+1
end
create procedure #IntListToTable
@cslist varchar(8000),
@tablename Sysname
AS
Begin
Declare @spot smallint, @str varchar(8000), @sql varchar(8000)
while @cslist <> ''
Begin
Set @spot = charindex(',', @cslist)
if @spot > 0
Begin
Set @str = cast(left(@cslist, @spot-1) as int)
set @cslist = right(@cslist, len(@cslist)-@spot)
end
else
Begin
Set @str = cast(@cslist as int)
Set @cslist = ''
End
Set @sql = 'Insert Into ' + @tablename + ' Values('+convert(varchar(100),@str)+')'
exec(@sql)
end
endcreate table #vals (id INT)exec #IntListToTable '30000,50000,8000,2000,3000', '#vals'select id from #vals结果:30000
50000
8000
2000
3000