如何在MS SQL Server中使用select语句(不使用多个插入语句)在表变量中插入静态值。
例如
Declare @xyz table(
abc varchar(10),
pqr varchar(10)
)
insert into @xyz(abc, pqr) values('a1', 'p1')
insert into @xyz(abc, pqr) values('a2', 'p2')
insert into @xyz(abc, pqr) values('a3', 'p3')
相反,有没有办法像下面这样写东西?
insert into @xyz(abc, pqr)
select abc, pqr
from (
'a1', 'p1',
'a2', 'p2',
'a3', 'p3'
)res
谢谢
答案 0 :(得分:1)
您不必重复插入语句...
Declare @xyz table(
abc varchar(10),
pqr varchar(10)
)
insert into @xyz(abc, pqr)
values
('a1', 'p1')
,('a2', 'p2')
,('a3', 'p3')
或者您可以将其与union all
insert into @xyz(abc, pqr)
select abc, pqr
from
(
select
'a1' as abc , 'p1' as pqr
union all
select
'a2', 'p2'
union all
select
'a3', 'p3'
) x
或表构造器
insert into @xyz(abc, pqr)
select abc, pqr
from
(values('a1','p1'),('a2', 'p2'),('a3', 'p3')) as x(abc, pqr)
答案 1 :(得分:1)
insert into @xyz(abc, pqr)
select abc, pqr
from (VALUES
('a1', 'p1'),
('a2', 'p2'),
('a3', 'p3')
)res(abc, pqr)
答案 2 :(得分:0)
insert into @xyz(abc, pqr) values('a1', 'p1'),('a2', 'p2'),('a3', 'p3')