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을 추가하는 경우
오류 있습니까? –
아니요. 오류는 없습니다. 명령이 성공적으로 실행되었지만 트랜잭션과 함께 sp를 실행할 때 ID가 삽입되지 않습니다. – hari
* 부작용 * : 항상 가장 적절한 ** 데이터 유형을 사용하십시오. 명백한'@ StartDate' ** date ** 값은 varchar (50)입니다. ** NOT ** ** 가장 적절한 방법입니다! 날짜처럼 보이고, 날짜와 같은 냄새가 나거나, 날짜처럼 쓰다듬는다면 - ** IT IS ** 날짜입니다. 그런 다음 데이터 유형으로'DATE' 또는'DATETIME2 (n)'을 사용해야합니다 - ** not * * varchar! –