我想在定义PK列值(2)(tblSpills
,tblSpills.Year
)时复制或复制表(tblSpills.Complaint
)中的行。
我已经有一个存储过程,它插入一个带有自定义PK值的新行,而其他所有列(大约30个)都是空的。到目前为止,我已经完成了执行现有存储过程来创建新行并获取新PK值作为新Duplicate
存储过程的变量,但我无法弄清楚如何从一个复制剩余列行到同一个表中新创建的行。
感谢您提供任何帮助。
答案 0 :(得分:0)
您没有告诉我们您正在使用的系统/数据库 - 但只是猜测它是否应该是SQL Server,您可以这样做:
INSERT INTO dbo.tblSpills(Year, Complaint, list all other columns here)
SELECT
@YearValue, @ComplaintValue,
(list of all other columns here)
FROM
dbo.tblSpills
WHERE
(some condition here, e.g. ID = 42 or something)
基本上,您会根据tblSpills
和Year
的新值,在Complaint
表中插入列的列表,并从中获取同一个表中的所有其他列值现有行(基于您必须定义的WHERE条件)
对于“其他列”:您只需列出需要值或要为其设置特定值的列。那些已经定义了合理的DEFAULT约束的列不需要列出 - 当插入新行时,它们将自动获得定义的默认值。