如何使用select语句将静态值插入表变量

时间:2018-06-29 20:41:15

标签: sql-server

如何在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

谢谢

3 个答案:

答案 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')