Hi,
Try this worked fine on my local database.
CREATE TABLE [dbo].[temp](
[employee_id] [char](7) NOT NULL,
[first_name] [char](50) NOT NULL,
[middle_name] [char](50) NOT NULL,
[last_name] [char](50) NOT NULL,
[title] [char](5) NOT NULL,
[sex] [char](1) NOT NULL,
--add here more columns and extend them into the cursor
[from_date] [datetime] NULL,
[to_date] [datetime] NULL,
[grade_code] [char] (5) NULL,
[manager_id] [char] (7) NULL
)
insert into temp
values
('1','igor','dimitry','micev','eng','m','2002-10-01','2012-10-10','10','1'),
('2','tony','petar','stojanov','eng','m','2002-05-01','2012-10-10','9','1')
select * from temp
CREATE TABLE [dbo].[employee](
[employee_id] [char](7) NOT NULL,
[first_name] [char](50) NOT NULL,
[middle_name] [char](50) NOT NULL,
[last_name] [char](50) NOT NULL,
[title] [char](5) NOT NULL,
[sex] [char](1) NOT NULL,
)
CREATE TABLE [dbo].[employee_details](
[employee_id] [char](7) NOT NULL,
[from_date] [datetime] NULL,
[to_date] [datetime] NULL,
[grade_code] [char] (5) NULL,
[manager_id] [char] (7) NULL
)
go
create procedure split_and_insert
as
begin
set nocount on
declare myCursor cursor for
select employee_id,first_name,middle_name,last_name,title,sex,from_date,to_date,grade_code,manager_id
from temp
open myCursor
declare @empid char(7)
declare @fname char(50)
declare @mname char(50)
declare @lname char(50)
declare @title char(5)
declare @sex char(1)
declare @from_date datetime
declare @to_date datetime
declare @grade char(5)
declare @mgr_id char(7)
fetch next from myCursor into
@empid,@fname,@mname,@lname,@title,@sex,@from_date,@to_date,@grade,@mgr_id
while @@fetch_status=0
begin
insert into employee(employee_id,first_name,middle_name,last_name,title,sex)
values(@empid,@fname,@mname,@lname,@title,@sex)
insert into employee_details(employee_id,from_date,to_date,grade_code,manager_id)
values(@empid,@from_date,@to_date,@grade,@mgr_id)
fetch next from myCursor into
@empid,@fname,@mname,@lname,@title,@sex,@from_date,@to_date,@grade,@mgr_id
end
close myCursor
deallocate myCursor
return 1;
end
exec split_and_insert
select * from employee
select * from employee_details
Igor Micev,My blog: www.igormicev.com