插入多行以及静态值

时间:2014-09-26 14:56:58

标签: sql sql-server tsql insert rows

我对SQL很新。更熟悉程序编程

我目前有局部变量,例如在循环内更改的名称。但是,我还执行一个返回许多行的函数。现在我循环遍历每一行,将值插入到结果表中。

如何在表中添加日期值(name,cname,val1,val2) 当我有多行?

示例案例:

set @name = 'test'
select cname, val1, val2 from myfunc(@name)

返回:

-----------------------
| cname | val1  | val2 |
------------------------
|'atest'| 1.3   | 42.0 |
|'btest'| 1.58  | 6.87 |
------------------------

我希望结果表(@restable)为:

-----------------------------
name  | cname | val1  | val2 |
-----------------------------
'test'|'atest'| 1.3   | 42.0 |
'test'|'btest'| 1.58  | 6.87 |
------------------------------

注意在此操作之后,我仍然需要@restable来获取更多语句。

2 个答案:

答案 0 :(得分:2)

declare @t table(cname varchar(10),val1 decimal(10,2),val2 decimal(10,2))
insert into @t (cname,val1,val2) values ('atest',1.3,42.0)
insert into @t (cname,val1,val2) values ('btest',1.58,6.87)
select * from @t

declare @tt table(name varchar(10), cname varchar(10),val1 varchar(10),val2 decimal(10,2))
insert into @tt(name,cname,val1,val2)
select (select 'test')name, cname,val1,val2  from @t
select * from @tt

答案 1 :(得分:1)

我知道这适用于表格 不确定功能
如果函数返回一个表,这应该可以工作

set @name = 'test'
select @name as [name], cname, val1, val2 from myfunc(@name)
相关问题