1
ALTER PROCEDURE [dbo].aspnet_Applications_CreateApplication
2
@ApplicationName NVARCHAR(256),
3
@ApplicationId UNIQUEIDENTIFIER OUTPUT
4
AS
5
BEGIN
6
SELECT @ApplicationId = ApplicationId FROM dbo.aspnet_Applications WHERE LOWER(@ApplicationName) = LoweredApplicationName
7
8
IF(@ApplicationId IS NULL) /*如果应用程序ID为空则进行如下操作*/
9
BEGIN
10
DECLARE @TranStarted BIT
11
SET @TranStarted = 0
12
13
IF( @@TRANCOUNT = 0 ) /*如果当前连接的活动事务数为零,则开始事务*/
14
BEGIN
15
BEGIN TRANSACTION
16
SET @TranStarted = 1 /*开始事务,设置事务参数为一*/
17
END
18
ELSE
19
SET @TranStarted = 0 /*如果当前连接的活动事务数不为零, 设置事务参数为0*/
20
21
SELECT @ApplicationId = ApplicationId
22
FROM dbo.aspnet_Applications WITH (UPDLOCK, HOLDLOCK)
23
WHERE LOWER(@ApplicationName) = LoweredApplicationName
24![](/Images/OutliningIndicators/None.gif)
25
IF(@ApplicationId IS NULL) /*继续判断(不过此处多了WITH)*/
26
BEGIN
27
SELECT @ApplicationId = NEWID()
28
INSERT dbo.aspnet_Applications (ApplicationId, ApplicationName, LoweredApplicationName)
29
VALUES (@ApplicationId, @ApplicationName, LOWER(@ApplicationName))
30
/*如果为空就为表插入新数据,NEWID()创建 uniqueidentifier 类型的唯一值,返回类型为*/
31
END
32
33
34
IF( @TranStarted = 1 )
35
BEGIN
36
IF(@@ERROR = 0) /*如果返回错误为0*/
37
BEGIN
38
SET @TranStarted = 0 /*重新设置事务参数为0*/
39
COMMIT TRANSACTION /*结束事务*/
40
END
41
ELSE
42
BEGIN
43
SET @TranStarted = 0
44
ROLLBACK TRANSACTION /*回滚事务*/
45
END
46
END
47
END
48
END
49![](/Images/OutliningIndicators/None.gif)
50
GO
第一个,哈。
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
37
![](/Images/OutliningIndicators/None.gif)
38
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
39
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
45
![](/Images/OutliningIndicators/None.gif)
46
![](/Images/OutliningIndicators/None.gif)
47
![](/Images/OutliningIndicators/None.gif)
48
![](/Images/OutliningIndicators/None.gif)
49
![](/Images/OutliningIndicators/None.gif)
50
![](/Images/OutliningIndicators/None.gif)