트랜잭션을 커밋/롤백하는 방법과시기를 배우려고합니다. IF
조건을 사용하여 코드가 오류를 생성하는지 테스트하고 오류가 발생하면 롤백을 수행하려고합니다.트랜잭션을 커밋하거나 롤백하는 방법을 알아야합니다.
커밋 또는 롤백시기를 알 수 있도록 코드를 테스트하는 가장 좋은 방법은 무엇입니까?
필자는 아래의 코드를 시도했지만 메신저이 오류
메시지 102, 수준 15, 상태 1, 줄 5 근처의 구문이 잘못을 받고 '*'.
Begin Transaction DBChallenge1Setup
Create Table EmployeeRecords(
EmployeeID varchar(50) PRIMARY KEY
PpsNo varchar(8),
FirstName varchar(50),
LastName varchar(50),
Department varchar(50),
SupervisorId varchar(50),
PhoneNo varchar(50),
EmailAddress varchar(50),
DateOfBirth date);
Insert Into EmployeeRecords
Values(1, '5686213Q', 'Dan', 'Roche', 'IT',232, '', '[email protected]', '1970-04-10'),
(2, '6534223Q', 'Nicholas', 'Martin', 'IT',233, '', '[email protected]', '1974-12-01'),
(232, '9514223W', 'Jane', 'Donnelly', 'IT',999, '', '[email protected]', '1960-02-12'),
(233, '4212223S', 'Amy', 'Smythe', 'IT',999, '', '[email protected]', '1967-09-11');
Select * From EmployeeRecords
Select @@Rowcount As RecordsEntered, @@ERROR As Errors
if @@Error > 0 ROLLBACK Transaction DBChallenge1Setup
if @@Error = 0 Commit Transaction DBChallenge1Setup;
어떤 RDBMS를 사용하고 있습니까? 또한,'*'는 당신에게 에러를주고있다. 그것을 제거하십시오. create 문에서 컬럼 사이에','가 없다. –
'Try Catch' 블록 사용 방법은 어떻습니까? –
임 SSMS를 사용하고 있습니다. 필자는 쉼표를 추가했습니다. 모든 열을 반환하려면 *가 필요합니다. 나는 Catch를 시도하는 것에 익숙하지 않다. 그러나 그것을 찾을 것이다. 먼저 Commit/Rollback을 올바르게 사용하려고합니다. – frustrationmultiplied