create table a
(
ID varchar(10) primary key,
[value1] varchar(10),
[value2] varchar(10),
[value3] varchar(10),
[value4] varchar(10),
[value5] varchar(10)
)insert into a (ID,[value1],[value2],[value3],[value4],[value5]) values('1','52','61','47','51','43')
insert into a (ID,[value1],[value2],[value3],[value4],[value5]) values('2','52','61','47','51','43')
insert into a (ID,[value1],[value2],[value3],[value4],[value5]) values('3','53','64','42','55','48')
insert into a (ID,[value1],[value2],[value3],[value4],[value5]) values('4','56','66','46','57','42')
insert into a (ID,[value1],[value2],[value3],[value4],[value5]) values('5','50','64','41','58','43')
类似这样的一个表,里面有5行数据,每行有5个value
在存储过程中定义了25个参数,
v1_1,v2_1,v3_1,v4_1,v5_1
v1_2,v2_2,v3_2,v4_2,v5_2
v1_3,v2_3,v3_3,v4_3,v5_3
v1_4,v2_4,v3_4,v4_4,v5_4
v1_5,v2_5,v3_5,v4_5,v5_5
(前缀v1表示每行记录的value1,后缀_1,_2……表示该行记录的ID)
每个参数对应着表里自己的value
不要set @v1_1=select value1 from a where ID=1
set @v2_1=select value2 from a where ID=1
有什么方法能快速或者简单,不用写那么多代码的给这堆参数赋对应的值
没分了大侠帮忙!!
set @v1_1=select value1 from a where ID=1
set @v2_1=select value2 from a where ID=1
应该这样写 select @v1_1=value1,@v2_1=value2 from a where id=1其次有必要获取所有值赋给参数吗。如果要全部获取
直接 select * from a where 你的条件
输出结果集就可以了。
表类型:
创建一个表类型,以后在定义表变量的时候,就可以直接使用该表类型。
创建表类型:
create type dbo.OrderTotalsByYear as table
(
orderyear int not null primary key,
qty int not null
)
定义一个表变量直接使用表类型:
declare @MyOrderTotalsByYear as dbo.OrderTotalsByYear
insert into @MyOrderTotalsByYear (orderyear,qty)
select YEAR(a.orderdate) as orderyear,SUM(b.qty) as qty from sales.Orders a inner join sales.OrderDetails b on a.orderid=b.orderid group by YEAR(a.orderdate)
select * from @MyOrderTotalsByYear
以后直接使用这个表类型变量即可。
@SetupDate datetime,
@tDate char(7),
@ComTaxNo varchar(20),
@ShortName Varchar(50),
@Creator varchar(30),
@SysTaxNo int Output
As
Declare @MaxSysTaxNo int Select @MaxSysTaxNo=max(SysTaxNo) From FTAX
Set @MaxSysTaxNo=IsNull(@MaxSysTaxNo, 0 )
Set @SysTaxNo=@MaxSysTaxNo+1Insert Into FTAX ( SysTaxNo, SetupDate, tDate, ComTaxNo, ShortName, Creator ) Values (
@SysTaxNo, @SetupDate, @tDate, @ComTaxNo, @ShortName, @Creator )
上面的存储过程调用:exec dbo.InsertFTAX '2012-05-13','2012-05-14','111111','aaaaaaaa','bb',123具体到你的那个,只用定义5个变量,逐条拿出表记录放进存储过程就差不多了吧