如何从数据库一个表中读取主键并插入另外一个表?
实现功能是:在发帖的同时上传图像,并把发的当前帖子的ID(表Topci,主键是ID,自增字段)同时插入到表Img的Topic中,怎么样才能获取Topic表的主键ID?我现...
实现功能是:在发帖的同时上传图像,并把发的当前帖子的ID(表Topci,主键是ID,自增字段)同时插入到表Img的Topic中,怎么样才能获取Topic表的主键ID?
我现在的插入语句是: "insert into Img(Image_Wpath,Imge_User,Topic_ID,UpLoad_Time) values(" + "'" + wpath + "'" + "," + "'" + Session["UserName"].ToString() + "'" + "," + "'" + ImgID.ToString() + "'" + "," + "'" + DateTime.Now.ToString() + "'" + ");";
应该怎样修改?用的是VS2008,SQL2005。 展开
我现在的插入语句是: "insert into Img(Image_Wpath,Imge_User,Topic_ID,UpLoad_Time) values(" + "'" + wpath + "'" + "," + "'" + Session["UserName"].ToString() + "'" + "," + "'" + ImgID.ToString() + "'" + "," + "'" + DateTime.Now.ToString() + "'" + ");";
应该怎样修改?用的是VS2008,SQL2005。 展开
7个回答
展开全部
直接读取当前表主键,直接插入,SQL 如下:
假如多条记录,如A 为主表,字段a,B为另外一个表,字段为b
declare @Count int,@Start int,@b int
set @Start =0
select @Count=count(*) from A
while(@Start<@Count)
begin
select @b=a from A where a=@Start
insert into B (b) values (@b)
set @Start=@Start+1
end
展开全部
在你插入帖子之后,使用SCOPE_IDENTITY()获取插入帖子的主键(前提是你的帖子表是自增类型)。再将这个值插入图片表就可以了。
更多追问追答
追问
SCOPE_IDENTITY()怎么用?加在哪里的?然后怎么样提取出来?是不是SCOPE_IDENTITY()加在哪个语句后?就只加SCOPE_IDENTITY()就可以了吗?
追答
这个函数是用来获取当前会话里面最后产生的自增类型的值的。你只需要在插入图片的时候这样:
INSERT Topic
....
INSERT Img
(TopicID,...)
VALUES
(
SCOPE_IDENTITY(),
...
)
就可以了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.
直接读取当前表主键,直接插入,SQL
如下:
2.
假如多条记录,如A
为主表,字段a,B为另外一个表,字段为b
3.
declare
@Count
int,@Start
int,@b
int
4.
set
@Start
=0
5.
select
@Count=count(*)
from
A
6.
while(@Start<@Count)
7.
begin
8.
select
@b=a
from
A
where
a=@Start
9.
insert
into
B
(b)
values
(@b)
10.
set
@Start=@Start+1
11.
end
直接读取当前表主键,直接插入,SQL
如下:
2.
假如多条记录,如A
为主表,字段a,B为另外一个表,字段为b
3.
declare
@Count
int,@Start
int,@b
int
4.
set
@Start
=0
5.
select
@Count=count(*)
from
A
6.
while(@Start<@Count)
7.
begin
8.
select
@b=a
from
A
where
a=@Start
9.
insert
into
B
(b)
values
(@b)
10.
set
@Start=@Start+1
11.
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.
直接读取当前表主键,直接插入,sql
如下:
2.
假如多条记录,如a
为主表,字段a,b为另外一个表,字段为b
3.
declare
@count
int,@start
int,@b
int
4.
set
@start
=0
5.
select
@count=count(*)
from
a
6.
while(@start<@count)
7.
begin
8.
select
@b=a
from
a
where
a=@start
9.
insert
into
b
(b)
values
(@b)
10.
set
@start=@start+1
11.
end
直接读取当前表主键,直接插入,sql
如下:
2.
假如多条记录,如a
为主表,字段a,b为另外一个表,字段为b
3.
declare
@count
int,@start
int,@b
int
4.
set
@start
=0
5.
select
@count=count(*)
from
a
6.
while(@start<@count)
7.
begin
8.
select
@b=a
from
a
where
a=@start
9.
insert
into
b
(b)
values
(@b)
10.
set
@start=@start+1
11.
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个你可以用程序先实现插入当前的帖子成功之后,获取成功的id,让后再执行上传图片操作,就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询