+ -
当前位置:首页 → 问答吧 → SQL2008 如何同时插入多个表

SQL2008 如何同时插入多个表

时间:2011-11-09

来源:互联网

--创建学生(Students)表
CREATE TABLE Students(
cStudentsId char(10) NOT NULL,
iStuImage image NULL,
vStuName varchar(20) NOT NULL,
cStuSex char(5) NOT NULL,
sStuAge smallint NULL,
CONSTRAINT constraint_Students PRIMARY KEY(cStudentsId),
CHECK(sStuAge BETWEEN 0 AND 100),
CONSTRAINT chkStuSex CHECK(cStuSex IN ('男','女'))
 ) 
--创建学生用户(StuUsers)表
CREATE TABLE Stuusers(
cStudentsId char(10) NOT NULL,
cStuCode char(10) NOT NULL

ALTER TABLE Stuusers
ADD CONSTRAINT fkStuusers FOREIGN KEY (cStudentsId) REFERENCES Students(cStudentsId)
--创建学生在校(StudentsSchool)表
CREATE TABLE StudentsSchool(
cStudentsId char(10) NOT NULL,
dStuEnteTime datetime NOT NULL,
vStuMajor varchar(40) NOT NULL,
dStuFinTime datetime NOT NULL

ALTER TABLE StudentsSchool
ADD CONSTRAINT fkStudentsSchool FOREIGN KEY (cStudentsId) REFERENCES Students(cStudentsId)

我想三个表同时插入数据,因为三个表中都有cStudentsId,我想做到三个表一同插入,而不是像下面一样一个表一个表的插入,但是不知道能用什么方法插入,请各位高手指点一二,非常感激。
 
INSERT Students (cStudentsId,vStuName,cStuSex,sStuAge) VALUES
('2010121001', '张三', '男', '19'),('2010121002', '李三', '男', '19'),
('2010121003', '张四', '男', '22'),('2010121004', '李四', '男', '21'),
('2010121005', '赵艳', '女', '20'),('2010121006', '严子义', '男', '23'),
insert StudentsSchool values
('2010121001', '2006-9-13', '网络工程', '2010-4-25'),
('2010121002', '2006-9-13', '大气', '2010-4-25'),
('2010121003', '2007-9-13', '应用物理', '2011-4-25'),
('2010121004', '2008-9-13', '电子信息工程', '2013-4-25'),
('2010121005', '2005-9-13', '土木工程', '2010-4-25'),
('2010121006', '2007-9-13', '英语', '2010-4-25'),
INSERT Stuusers VALUES 
('2010121001', '0000000000'),('2010121002', '0000000000'),
('2010121003', '0000000000'),('2010121004', '0000000000'),
('2010121005', '0000000000'),('2010121006', '0000000000'),

作者: Yp2800   发布时间: 2011-11-09

木有办法,只能一个一个插.

作者: qianjin036a   发布时间: 2011-11-09

这。。。把三个INSERT 语句写在同一个事务里面

不过实质上还是分3次插入。

作者: fredrickhu   发布时间: 2011-11-09

那么又怎么写在一个事务里面呢
怎么写呢?谢谢指点……

作者: Yp2800   发布时间: 2011-11-09

你插入的语句 应该 在 应用程序里面实现的吧?!
  还是 用一下 SqlBulkCopy 吧,三个表一起插入是不行的,有
 外键,注意一下 顺序,祝好运!

作者: sunboylyl   发布时间: 2011-11-09

可用存储过程实现,新增时调用存储过程 
SQL code

表:T1
ID
表:T2
ID  T1_ID

Create proc P1(@ID int,@ID2 int)
as
insert T1 values(@ID)
insert T2 values(@ID2,@ID)
go
exec p1 1,2

作者: roy_88   发布时间: 2011-11-10