SQL05 存储过程实现把一个表的数据插入另一个表的后半部分,刚才回答的朋友再来看下麻烦了

例:表A有字段abc123表B有字段123表B只有一行结果用于储存一个默认值,使用SQL05存储过程~在表Ainsertabc的同时,把表B导入到123中如果采用upda... 例: 表A 有字段 a b c 1 2 3
表B 有字段 1 2 3
表B只有一行结果用于储存一个默认值,使用SQL05存储过程~在表A insert a b c 的同时, 把表B导入到1 2 3中

如果采用update的方式,也无法在同一个存储过程实现,应为要update的数据也是一个表,一查询方式查出的是结果集,无法用语句加在另一个表的对映字段上,如果这种没有办法,可以详细给我讲讲视图那种的吗?视图那种我不太懂。谢谢了
以往的数据不能改,应为以往的数据也许会被操作成现场值,只是改新生成默认值

嗯~效果就是这样~发下看一下具体实现过程吧~表B的数据要一个一个读入进来再update进表A对应的字段吗?这样太麻烦了~

好的~朋友太感谢你了~
展开
 我来答
匿名用户
2011-02-15
展开全部
稍等下,我把你刚刚结束问题的补充说明看下

是这样的,我不知道你给客户做的默认值假如修的话,以前的数据需不需要一起更改,假如是用视图的话,以前的数据是会一起跟着改动的。
如果你是需要这种效果的话,我可以把视图的那种方式跟你说下。如果不是,我在考虑下,看看还有没有更好的办法!

补充:
看到了!我有个折中的方法,就是你在往A表插入数据的时候就用存储过程,然后再存储过程里面读取B表的数据,将数据插入A。你看行不行?

create procedure InsertValue (@fieldA as varchar(20),@fieldB as varchar(20),@fieldC as varchar(20))
as
begin
Set NoCount On--关闭返回,这样用程序执行的时候才能将这个存储过程加到一个事务里面,如果没有事务,可删除

Declare @field1 as varchar(20),@field2 as varchar(20),@field3 as varchar(20)

select top 1 @field1=字段1,@field2=字段2,@field3=字段3
from 表B

insert into 表A
Select(@fieldA,@fieldB,@fieldC,@field1,@field2,@field3)

Set NoCount Off --和前面的ON对应
end

执行的时候用:exec InsertValue ('a', 'b', 'c')
希望对你有帮助
lvpin1005
2011-02-15 · 超过35用户采纳过TA的回答
知道答主
回答量:107
采纳率:0%
帮助的人:94.6万
展开全部
表B只有一行而且是一个默认值,那么表B和常量有什么区别?你应该想描述的是:A 对B是一对一或者多对一的关系吧?如果是这样的话用存储过程是可以实现的,用游标去逐行UPDATE就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式