SQL2008 如何同时插入多个表
--创建学生(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'),
------解决方案--------------------木有办法,只能一个一个插.
------解决方案--------------------这。。。把三个INSERT 语句写在同一个事务里面
不过实质上还是分3次插入。
------解决方案--------------------  你插入的语句 应该 在 应用程序里面实现的吧?!
  还是 用一下 SqlBulkCopy 吧,三个表一起插入是不行的,有
 外键,注意一下 顺序,祝好运!
------解决方案--------------------可用存储过程实现,新增时调用存储过程 
表: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已经告诉你了,把所有的内容写到存储过程中去.
大致为:
create procedure my_proc
as
begin
INSERT Students (cStudentsId,vStuName,cStuSex,sStuAge) VALUES
('2010121001', '张三', '男', '19'),('2010121002', '李三', '男', '19'),
('2010121003', '张四', '男', '22'),('2010121004', '李四', '男', '21'),
('2010121005', '赵艳', '女', '20'),('2010121006',&nb