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对应的字段吗?这样太麻烦了~
好的~朋友太感谢你了~ 展开
表B 有字段 1 2 3
表B只有一行结果用于储存一个默认值,使用SQL05存储过程~在表A insert a b c 的同时, 把表B导入到1 2 3中
如果采用update的方式,也无法在同一个存储过程实现,应为要update的数据也是一个表,一查询方式查出的是结果集,无法用语句加在另一个表的对映字段上,如果这种没有办法,可以详细给我讲讲视图那种的吗?视图那种我不太懂。谢谢了
以往的数据不能改,应为以往的数据也许会被操作成现场值,只是改新生成默认值
嗯~效果就是这样~发下看一下具体实现过程吧~表B的数据要一个一个读入进来再update进表A对应的字段吗?这样太麻烦了~
好的~朋友太感谢你了~ 展开
2个回答
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')
希望对你有帮助
是这样的,我不知道你给客户做的默认值假如修的话,以前的数据需不需要一起更改,假如是用视图的话,以前的数据是会一起跟着改动的。
如果你是需要这种效果的话,我可以把视图的那种方式跟你说下。如果不是,我在考虑下,看看还有没有更好的办法!
补充:
看到了!我有个折中的方法,就是你在往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')
希望对你有帮助
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询