2016-03-24 13 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

Hangisi veri alıyor? Ayrıca, izlemeyi daha kolay hale getirmek için bunu en az yeniden oluşturmak üzere azaltmayı deneyin. – Richard

+0

ilk tablo, düzeltme sonrası – hari

cevap

0

SP'niz birden çok RETURN ifadesi içeriyor ve ilkinden sonra çıkacak. Kalanı idam edilmeyecek.

Referans: bir sorgu ya da yordam
Çıkışlar koşulsuz https://msdn.microsoft.com/en-us/library/ms174998.aspx

DÖNÜŞ (Transact-SQL). RETURN hemen ve eksiksizdir ve bir prosedürden, toplu işten veya deyim bloğundan çıkmak için herhangi bir noktada kullanılabilir. RETURN takip eden ifadeler uygulanmaz.

+0

veri alıyor ** INSERT deyimi, "FK__tbl_addre__Emp_i__6B64E1A4" FOREIGN KEY kısıtlaması ile çakıştı. Çatışma veritabanı "ctsdev", "dbo.tbl_empinfo", "Emp_id" sütununda gerçekleşti. Deyim sonlandırıldı. ** Bu hata ilk tablo için geliyor – hari

+0

Bu, eklemeye çalıştığınız satırın başka bir tablodaki bir kayda atıfta bulunduğu anlamına gelir, ancak başka bir tablonun böyle bir kaydı olmadığı anlamına gelir. Bunu kendiniz düzeltmelisiniz (ilişkiyi kontrol et, verileri kontrol et, vs.). Cevabıma yorumlar ekleyerek bunu çözmeye çalışmamalıyız, bu farklı bir konudur. –

+0

Ve lütfen, yardım ederse cevabı kabul edin. –