如何使用存储过程将一个表的完全相同的模式复制到另一个表

时间:2016-03-04 05:57:24

标签: sql-server stored-procedures schema

最初,我将使用存储过程(SP1)将源表的所有列存储到单个变量。此SP2在SP2内部调用,该变量将插入目标表。

我知道这种方法,但坚持实施它。

-- SP1
Create procedure insert_data
AS
Declare @data nvarchar(60)
Begin
EXEC get 
--Here i have to insert
END
Go

- SP2

Create procedure get_column 

AS

Declare 
    @e_id int , @e_name nvarchar(20) , @d_id int,@res nvarchar(50)

Begin

    SET @e_id =(select Emp_ID  from Dim_Employee where Emp_Name='Cathy');

    SET @e_name  =(select Emp_Name   from Dim_Employee where emp_id=101);

    SET @d_id  =(select Dept_ID  from Dim_Employee where emp_name='Cathy');

    SET @res ='@e_id , @e_name , @d_id';

    return @res

END
Go

1 个答案:

答案 0 :(得分:0)

如果您已有目的地表:

insert into DestTbl(emp_id, dept_id, ...)
select emp_id, dept_id, ...
from Dim_Employee d
where ...

如果你不想创建它

select emp_id, dept_id, ...
into DestTbl
from Dim_Employee d
where ...

如果您仍想使用变量

insert into DestTbl(emp_id, dept_id)
values (@emp_id, @dept_id, ...)

这是你要求的吗?

msdn上的INSERT语句: https://technet.microsoft.com/en-us/library/ms174335.aspx