我的代码生成器生成的样本代码(t-sql)
Code
1 SET ANSI_NULLS ON
2 SET QUOTED_IDENTIFIER OFF
3 GO
4 CREATE PROCEDURE User_Delete
5 @UserID int
6 AS
7 BEGIN
8 DECLARE @ErrorCode int
9 SELECT @ErrorCode = 0
10
11 DECLARE @TranStarted bit
12 SELECT @TranStarted = 0
13
14 IF(@@TRANCOUNT = 0)
15 BEGIN
16 BEGIN TRANSACTION
17 SELECT @TranStarted = 1
18 END
19 ELSE
20 SELECT @TranStarted = 0
21
22 DELETE FROM [User]
23 WHERE [UserID] = @UserID
24
25 IF(@@ERROR <> 0)
26 BEGIN
27 SELECT @ErrorCode = -1
28 GOTO Cleanup
29 END
30
31 IF(@TranStarted = 1)
32 BEGIN
33 SELECT @TranStarted = 0
34 COMMIT TRANSACTION
35 END
36
37 Cleanup:
38
39 IF(@TranStarted = 1)
40 BEGIN
41 SET @TranStarted = 0
42 ROLLBACK TRANSACTION
43 END
44
45 RETURN @ErrorCode
46
47 END
48
49
1 SET ANSI_NULLS ON
2 SET QUOTED_IDENTIFIER OFF
3 GO
4 CREATE PROCEDURE User_Delete
5 @UserID int
6 AS
7 BEGIN
8 DECLARE @ErrorCode int
9 SELECT @ErrorCode = 0
10
11 DECLARE @TranStarted bit
12 SELECT @TranStarted = 0
13
14 IF(@@TRANCOUNT = 0)
15 BEGIN
16 BEGIN TRANSACTION
17 SELECT @TranStarted = 1
18 END
19 ELSE
20 SELECT @TranStarted = 0
21
22 DELETE FROM [User]
23 WHERE [UserID] = @UserID
24
25 IF(@@ERROR <> 0)
26 BEGIN
27 SELECT @ErrorCode = -1
28 GOTO Cleanup
29 END
30
31 IF(@TranStarted = 1)
32 BEGIN
33 SELECT @TranStarted = 0
34 COMMIT TRANSACTION
35 END
36
37 Cleanup:
38
39 IF(@TranStarted = 1)
40 BEGIN
41 SET @TranStarted = 0
42 ROLLBACK TRANSACTION
43 END
44
45 RETURN @ErrorCode
46
47 END
48
49
Code
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE User_Insert
@UserName nvarchar(50),
@UserID int OUTPUT
AS
BEGIN
DECLARE @ErrorCode int
SELECT @ErrorCode = 0
DECLARE @TranStarted bit
SELECT @TranStarted = 0
IF(@@TRANCOUNT = 0)
BEGIN
BEGIN TRANSACTION
SELECT @TranStarted = 1
END
ELSE
SELECT @TranStarted = 0
INSERT INTO [User]
(
[UserName]
)
VALUES
(
@UserName
)
IF(@@ERROR <> 0)
BEGIN
SELECT @ErrorCode = -1
GOTO Cleanup
END
SELECT @UserID = @@identity
IF(@TranStarted = 1)
BEGIN
SELECT @TranStarted = 0
COMMIT TRANSACTION
END
Cleanup:
IF(@TranStarted = 1)
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
RETURN @ErrorCode
END
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE User_Insert
@UserName nvarchar(50),
@UserID int OUTPUT
AS
BEGIN
DECLARE @ErrorCode int
SELECT @ErrorCode = 0
DECLARE @TranStarted bit
SELECT @TranStarted = 0
IF(@@TRANCOUNT = 0)
BEGIN
BEGIN TRANSACTION
SELECT @TranStarted = 1
END
ELSE
SELECT @TranStarted = 0
INSERT INTO [User]
(
[UserName]
)
VALUES
(
@UserName
)
IF(@@ERROR <> 0)
BEGIN
SELECT @ErrorCode = -1
GOTO Cleanup
END
SELECT @UserID = @@identity
IF(@TranStarted = 1)
BEGIN
SELECT @TranStarted = 0
COMMIT TRANSACTION
END
Cleanup:
IF(@TranStarted = 1)
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
RETURN @ErrorCode
END
Code
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE User_Select
@UserID int
AS
BEGIN
DECLARE @ErrorCode int
SELECT @ErrorCode = 0
DECLARE @TranStarted bit
SELECT @TranStarted = 0
IF(@@TRANCOUNT = 0)
BEGIN
BEGIN TRANSACTION
SELECT @TranStarted = 1
END
ELSE
SELECT @TranStarted = 0
SELECT [UserID],
[UserName]
FROM [User]
WHERE [UserID] = @UserID
IF(@@ERROR <> 0)
BEGIN
SELECT @ErrorCode = -1
GOTO Cleanup
END
IF(@TranStarted = 1)
BEGIN
SELECT @TranStarted = 0
COMMIT TRANSACTION
END
Cleanup:
IF(@TranStarted = 1)
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
RETURN @ErrorCode
END
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE User_Select
@UserID int
AS
BEGIN
DECLARE @ErrorCode int
SELECT @ErrorCode = 0
DECLARE @TranStarted bit
SELECT @TranStarted = 0
IF(@@TRANCOUNT = 0)
BEGIN
BEGIN TRANSACTION
SELECT @TranStarted = 1
END
ELSE
SELECT @TranStarted = 0
SELECT [UserID],
[UserName]
FROM [User]
WHERE [UserID] = @UserID
IF(@@ERROR <> 0)
BEGIN
SELECT @ErrorCode = -1
GOTO Cleanup
END
IF(@TranStarted = 1)
BEGIN
SELECT @TranStarted = 0
COMMIT TRANSACTION
END
Cleanup:
IF(@TranStarted = 1)
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
RETURN @ErrorCode
END
Code
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE User_Update
@UserID int,
@UserName nvarchar(50)
AS
BEGIN
DECLARE @ErrorCode int
SELECT @ErrorCode = 0
DECLARE @TranStarted bit
SELECT @TranStarted = 0
IF(@@TRANCOUNT = 0)
BEGIN
BEGIN TRANSACTION
SELECT @TranStarted = 1
END
ELSE
SELECT @TranStarted = 0
UPDATE [User]
SET [UserName] = @UserName
WHERE [UserID] = @UserID
IF(@@ERROR <> 0)
BEGIN
SELECT @ErrorCode = -1
GOTO Cleanup
END
IF(@TranStarted = 1)
BEGIN
SELECT @TranStarted = 0
COMMIT TRANSACTION
END
Cleanup:
IF(@TranStarted = 1)
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
RETURN @ErrorCode
END
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER OFF
GO
CREATE PROCEDURE User_Update
@UserID int,
@UserName nvarchar(50)
AS
BEGIN
DECLARE @ErrorCode int
SELECT @ErrorCode = 0
DECLARE @TranStarted bit
SELECT @TranStarted = 0
IF(@@TRANCOUNT = 0)
BEGIN
BEGIN TRANSACTION
SELECT @TranStarted = 1
END
ELSE
SELECT @TranStarted = 0
UPDATE [User]
SET [UserName] = @UserName
WHERE [UserID] = @UserID
IF(@@ERROR <> 0)
BEGIN
SELECT @ErrorCode = -1
GOTO Cleanup
END
IF(@TranStarted = 1)
BEGIN
SELECT @TranStarted = 0
COMMIT TRANSACTION
END
Cleanup:
IF(@TranStarted = 1)
BEGIN
SET @TranStarted = 0
ROLLBACK TRANSACTION
END
RETURN @ErrorCode
END