2016-06-20 5 views
0
USE [incentive] 
GO 

SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 

CREATE PROCEDURE [dbo].[usp_insert_empincentivefinal] 
    (@id int,      
    @ConsultantName varchar(50) ,     
    @ClientName varchar(50) ,  
    @StartDate varchar(50),  
    @PositionName varchar(20) , 
    @Location varchar(20) ,  
    @Job_Status varchar (20), 
    @RecruiterName varchar(20),      
    @BenchMarketing varchar(1) ,     
    @Placement varchar(1), 
    @CompanyName varchar(20),   
    @Durations varchar(20),    
    @DurationofProject varchar(10) 
    [email protected] int out  
    )   
AS     
BEGIN 
    SET NOCOUNT ON 

    BEGIN TRAN 
     INSERT INTO [tbl_Empincentivenew1](ConsultantName, ClientName, RecruiterName, PositionName, CompanyName, Location, DurationofProject, Durations, BenchMarketing, Placement, Job_Status, StartDate)     
     OUTPUT INSERTED.id 
     DEFAULT VALUES 

     COMMIT 
    END   
GO 

프로 시저를 실행할 때 내 테이블이 id와 함께 삽입되지 않지만 트랜잭션 부분 만 실행하면 id 값이 삽입됩니다.저장 프로 시저 내에서의 트랜잭션

도와 주시겠습니까? 이 같은 커밋 명령 후 TRAN을 추가하는 경우

+0

오류 있습니까? –

+0

아니요. 오류는 없습니다. 명령이 성공적으로 실행되었지만 트랜잭션과 함께 sp를 실행할 때 ID가 삽입되지 않습니다. – hari

+1

* 부작용 * : 항상 가장 적절한 ** 데이터 유형을 사용하십시오. 명백한'@ StartDate' ** date ** 값은 varchar (50)입니다. ** NOT ** ** 가장 적절한 방법입니다! 날짜처럼 보이고, 날짜와 같은 냄새가 나거나, 날짜처럼 쓰다듬는다면 - ** IT IS ** 날짜입니다. 그런 다음 데이터 유형으로'DATE' 또는'DATETIME2 (n)'을 사용해야합니다 - ** not * * varchar! –

답변

0

:

는 TRAN

가 도움을합니까 COMMIT?

+0

@Alex ... 아니요 ... 같은 결과 ... :( – hari