2016-03-24 11 views
0
USE [ctsdev] 
GO 

/****** Object: StoredProcedure [dbo].[usp_insertemployeeinfo] Script Date: 03/24/2016 11:33:15 ******/ 
SET ANSI_NULLS ON 
GO 

SET QUOTED_IDENTIFIER ON 
GO 
CREATE PROCEDURE [dbo].[usp_insertemployeeinfo] 
@Emp_id int , 
@FirstName varchar(100), 
@MiddleName varchar(50), 
@LastName varchar(100), 
@Date_of_join date, 
@Job_title varchar(50), 
@Grade varchar(50), 
@Department varchar(50), 
@Location varchar(100), 
@Date_of_birth date, 
@Nationality varchar(100), 
@Mobile_no varchar(10), 
@Psprt_yn varchar(1), 
@Passport_no varchar(8), 
@Date_of_issue date, 
@Place_of_issue varchar(100), 
@Date_of_expiry date, 
@Pancard_yn varchar(1), 
@Pancard_no varchar(10), 
@Relatives_yn varchar(1), 
@Relative_name varchar(100), 
@Relative_grade varchar(100), 
@Relative_dept varchar(100), /*1st table*/ 

@Home_adrs varchar(max), 
@Home_number varchar(10), 
@Home_mailid varchar(100), 
@CHA_PHA_same varchar(1), 
@Contact_name varchar(100), 
@Relation varchar(100), 
@City varchar(100), 
@Contact_adrs varchar(100), 
@Contact_num varchar(100), /*2nd table*/ 

@Qualification varchar(100), 
@University_board varchar(100), 
@Specialization varchar(100), 
@Year_of_passing date, 
@Grade_cgpa varchar(20), /*3rd table*/ 

@Bank_name varchar(100), 
@Bank_adrs varchar(100), 
@Account_num varchar(50), 
@Ifsc_code varchar(50), 
@Name_of_acnt_holder varchar(100), /*4th table*/ 

@From_date date, 
@To_date date, 
@Organization varchar(100), 
@Job_title_his varchar(50), 
@Sal_per_mnth varchar (50), 
@Reasons_for_leavn varchar(max), 
@Reference_name varchar(100), 
@Contact_num_hist varchar(10), 
@Organization_ref varchar(100), 
@Job_title_ref varchar(50), /*5th table*/ 

@newid int output 
AS 
BEGIN 
SET NOCOUNT ON 

/* INSERTING INTO 1ST TABLE*/ 
INSERT INTO [tbl_empinfo ](FirstName,MiddleName,LastName,Date_of_join,Job_title,Grade,Department,Location,Date_of_birth,Nationality,Mobile_no,Psprt_yn,Passport_no,Date_of_issue, Place_of_issue,Date_of_expiry, Pancard_yn,Pancard_no,Relatives_yn, Relative_name, Relative_grade,Relative_dept) 
VALUES  (@FirstName,@MiddleName,@LastName,@Date_of_join,@Job_title,@Grade,@Department,@Location,@Date_of_birth,@Nationality,@Mobile_no,@Psprt_yn,@Passport_no,@Date_of_issue,@Place_of_issue,@Date_of_expiry,@Pancard_yn,@Pancard_no,@Relatives_yn,@Relative_name,@Relative_grade,@Relative_dept) 
SELECT @Emp_id = SCOPE_IDENTITY() 
SELECT @Emp_id As newid 
RETURN 

/*SELECT @identity=SCOPE_IDENTITY()*/ 
/* INSERTING INTO 2 TABLE*/ 
INSERT INTO tbl_address (Emp_id,Home_adrs,Home_number,Home_mailid,CHA_PHA_same,Contact_name,Relation,City,Contact_adrs,Contact_num) 
VALUES  (@Emp_id,@Home_adrs,@Home_number,@Home_mailid,@CHA_PHA_same,@Contact_name,@Relation,@City,@Contact_adrs,@Contact_num) 
SELECT @Emp_id=SCOPE_IDENTITY() 
RETURN 
/* INSERTING INTO 3RD TABLE*/ 
INSERT INTO tbl_empeducation (Emp_id,Qualification,University_board,Specialization,Year_of_passing,Grade_cgpa) 
VALUES  (@Emp_id,@Qualification,@University_board,@Specialization,@Year_of_passing,@Grade_cgpa) 
SELECT @Emp_id=SCOPE_IDENTITY() 
RETURN 

/* INSERTING INTO 4TH TABLE*/ 
INSERT INTO tbl_bank_account_dtls(Emp_id,Bank_name,Bank_adrs,Account_num,Ifsc_code,Name_of_acnt_holder) 
VALUES(@Emp_id,@Bank_name,@Bank_adrs,@Account_num,@Ifsc_code,@Name_of_acnt_holder) 
SELECT @Emp_id=SCOPE_IDENTITY() 
RETURN 

/* INSERTING INTO 5TH TABLE*/ 
INSERT INTO tbl_Employment_hist(Emp_id,From_date,To_date,Organization,Job_title_his,Sal_per_mnth,Reasons_for_leavn,Reference_name,Contact_num_hist,Organization_ref,Job_title_ref) 
VALUES  (@Emp_id,@From_date,@To_date,@Organization,@Job_title_his,@Sal_per_mnth,@Reasons_for_leavn,@Reference_name,@Contact_num_hist,@Organization_ref,@Job_title_ref) 
SELECT @Emp_id=SCOPE_IDENTITY() 
RETURN 

/*SELECT @identity AS Id*/ 

END 


GO 
+0

どちらがデータを取得していますか?また、これを最小限の再作成で減らし、従うのが簡単になります。 – Richard

+0

修正後に最初のテーブルのデータが – hari

答えて

0

SPには複数のRETURN文が含まれています。残りの部分は実行されません。

参考:クエリまたはプロシージャから
終了し、無条件https://msdn.microsoft.com/en-us/library/ms174998.aspx

RETURN(のTransact-SQL)。 RETURNは直ちに完了し、プロシージャ、バッチ、または文ブロックを終了するためにいつでも使用できます。 RETURNに続く文は実行されません。

+0

になっています** INSERTステートメントがFOREIGN KEY制約 "FK__tbl_addre__Emp_i__6B64E1A4"と競合しました。競合はデータベース "ctsdev"、テーブル "dbo.tbl_empinfo"、列 "Emp_id"で発生しました。 ステートメントが終了しました。**このエラーは最初のテーブルで発生しています – hari

+0

つまり、挿入しようとしている行が別のテーブルのレコードを参照していますが、他のテーブルにはそのようなレコードはありません。あなたはそれを修正する必要があります(関係をチェックし、データをチェックするなど)。私は私の答えにコメントを追加することでそれを解決しようとすべきではありません、それは別の問題です。 –

+0

そして助けてくれたら、答えを受け入れてください。 –

関連する問題