从一个表中获取信息并写入另一个表的过程

时间:2014-06-27 08:14:56

标签: sql sql-server stored-procedures

我有一个问题,我完全被难过了。内容如下:

编写一个导入存储过程,该过程从表(源)获取信息并将其写入另一个表(目标)。

我猜它看起来像下面这样:

create procedure add_data(@name, @surname)
AS
BEGIN 
SELECT name, surname 
FROM cardholder

INSERT INTO new_table
values (name, surname)

我的逻辑是正确还是完全错过了?

3 个答案:

答案 0 :(得分:1)

你快到了。由于您是直接从一个表复制到另一个表,因此您可以使用INSERT INTO ... SELECT ...惯用语,如下所示:

create procedure add_data
 @name varchar(100)
 @surname varchar(100)
AS
BEGIN 

 INSERT INTO new_table(name,surname)
 SELECT name, surname 
 FROM cardholder

END

请注意我所做的两项更改:

  1. 如何声明SP的参数
  2. values子句应包含要插入的实际值。由于您要插入从表中检索的数据而不是固定值,因此请使用select查询。

答案 1 :(得分:0)

这是不正确的。尝试dis

create procedure add_data
(
@name varchar(100), 
@surname varchar(100)
)
AS
BEGIN 
INSERT INTO target
SELECT name, surname 
FROM cardholder

end

答案 2 :(得分:0)

请尝试以下代码。

create procedure add_data(@name VARCHAR(10), @surname VARCHAR(10))
AS
BEGIN 
INSERT INTO new_table(name, surname)
SELECT name, surname 
FROM cardholder
END

它会将数据从一个表插入到另一个表中,因此在输出中,参数传递的内容只会简单明了地插入到新表中。