2009-09-22 30 views
0

我有一个表中有一个字段:lngStatusID值为2的所有记录。如何通过签名过程在表中复制和插入记录?

现在我需要在同一个表,但与lngStatusID = 1

所以对于我认为存储过程将帮助我莫名其妙地再次插入所有记录。

按照我的逻辑应该是这样的:

1)我需要阅读与循环

2每条记录)复制所有领域中的临时变量

3)而不是执行插入查询插入记录lngStatusID = 1

我是新来的存储过程。 那么,任何人都可以指导我如何做到这一点?

或者有没有简单的方法来做到这一点?

+0

所以,你必须有一个字段,多行,并为每行的相同值的表?这看起来不太有用。 – JohnFx 2009-09-22 16:13:47

+0

@Vikas你描述事物的方式以过程式语言显示你的背景。洞察力是,用SQL可以以声明方式完成许多事情。 SQL语言或其扩展允许用于存储过程或即席查询中的过程语句/片段。它们在某些情况下非常有用,但首先要“以声明的方式思考”。 – mjv 2009-09-22 16:22:10

回答

5

你并不需要为这个存储过程,一个简单的INSERT语句就可以了:

insert into mytable 
(field1, field2, lngStatusID) 
select field1, field2, 1 
from mytable 
0

为什么你需要再次插入呢?也许简单的更新就足够了?

UPDATE table SET IngStatusID = 1 

请提供更多的细节,因为对我来说是没有意义的复制所有记录到临时表再次插入。

0
UPDATE <tablename> 
SET IngStatusID = 1 

这就是说,只有一个字段的任何表可能不应该是一个表,除非它的某种查找。

+0

即使它是一个查找表,在多行上具有相同值的单个列会有什么意义? – JohnFx 2009-09-22 16:16:00

+0

同意,在多行中具有相同的值没有意义。 – 2009-09-22 16:20:32

+0

@JohnFx:在原始问题的2)中提到了多个字段(“所有字段”)。 – RedFilter 2009-09-22 17:16:44

1
INSERT INTO <TABLENAME> (Col1,Col2,Col3) 
SELECT Col1, Col2, 2 
FROM <TABLENAME> 

无需SP或游标

相关问题