在oracle 数据库 中,如何在同张表内从查询到一行后将它修改到另一行?新的一行主键已经创建。其他内容一致。
比如,查询到行 A: PID(主键)---名称---代号---步骤---效果图路径
0001 ----苹果4---IP4---下单中---D:\苹果图
现在已经有一行,主键已经创建好。
B: 0032(已经创建) ----空---空---空---空
修改后结果
B: 0032 ----苹果4---IP4---下单中---D:\苹果图
请问怎么用SQL语句完成以上的效果?
A和B表示行A和行B,是在同一张表上操作,最后结果是,在同一张表上,出现主键不相同的的,但是其他信息相同的两个行。
是在同一张表上操作。 A,和B是表示
行A,和行B
只针对单行数据的复制和修改。
可以以上面的情况写个范本存储过程么?
谢谢
现在搞驱动了 当前电脑没SQL环境 大概写写吧
IF OBJECT_ID ('InserToTable_B','P') IS NOT NULL
DROP PROCEDURE InserToTable_B ;
GO
CREATE PROCEDURE InserToTable_B
AS
BEGIN
DECLARE @Name char(50); --名称
DECLARE @Nummber char(50); --代号
DECLARE @Step char(50); --步骤
SELECT @Name = a.Name, @Nummber = a.Nummber,@Step = a.Step
FROM Table_A a
WHERE ........ (这里加上指定的条件,可以在当前存储过程加个条件参数 ID什么的)
UPDATE TABLE_B b
SET( b.Name = @Name, b.Nummber = @Nummber,b.Step = @Step)
where ........ (指定条件)
END
GO
创建成功后 执行该存储过程 自己调试一下,我是随便写的,没编译
同一张表也是一样的,条件ID写对就行啦