将多个int类型的值插入一列

时间:2013-05-24 09:53:36

标签: sql-server

嘿所以我是sql的新手,正在建立一个库存管理系统。所以对于数据库,我在这一点上陷入困​​境,我需要将各种用户ID插入到公司的不同团队中,因此当我尝试将多个int值分配给特定团队时出现问题。数据库是在需要TeamId以及相应的UserId才能使用它的方式。

2 个答案:

答案 0 :(得分:1)

这可能对你有所帮助 -

DECLARE @temp TABLE (ID INT)

-- For 2008 and higher

INSERT INTO @temp (ID)
VALUES (1), (2), (3)

-- For 2005 and higher

INSERT INTO @temp (ID)
SELECT ID
FROM (
    SELECT ID = 4
    UNION ALL
    SELECT 5
    UNION ALL
    SELECT 6
) t

SELECT * 
FROM @temp

更新(评论@Sivakumar:" 1,19不是整数。它是varchar。" ):

DECLARE @temp TABLE (txt varchar(500))

INSERT INTO @temp (txt)
VALUES ('1,19'), ('2,18')

SELECT t.c.value('.', 'INT')
FROM (
    SELECT txml = CAST('<t>' + REPLACE(txt, ',', '</t><t>') + '</t>' AS XML)
    FROM @temp
) a
CROSS APPLY txml.nodes('/t') AS t(c)

答案 1 :(得分:0)

这听起来像是一对多关系:一个团队可以拥有零个或多个用户。

因此,在User中创建一个引用Team主键的外键列。

像这样(检查我的语法):

create table team (
    id int not null auto_increment,
    primary key(id);
);

create table user (
    id int not null auto_increment,
    tid int,
    primary key(id),
    foreign key tid references(team);
);

select * 
from team t
join user u
on t.id = u.tid;