最初,我将使用存储过程(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
答案 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