创建简单的存储过程和视图
IT新人的第一篇技术性文章,今天的收获:
存储过程
(1)直接读取数据
1 CREATE PROC spSupplierAgentList(存储过程名)
2 AS
3 SET NOCOUNT ON
4 SET ANSI_WARNINGS OFF
2 AS
3 SET NOCOUNT ON
4 SET ANSI_WARNINGS OFF
5 select * from vwSupplierAgent(视图名)
(2)存储页面数据
1 CREATE PROC spSupplierAgentUpd(存储过程名)
2
3 (--参数
4
5 @SupplierAgentID INT = NULL,
6
7 @AgentName VARCHAR(100),
8
9 @SupplierID INT
10
11 )
12
13 AS
14
15 SET NOCOUNT ON
16
17 SET ANSI_WARNINGS OFF
18
19
20 DECLARE @ErrMsg VARCHAR(80)--错误信息
21
22
23 DECLARE @NewID INT
24
25
26 BEGIN TRAN
27
28 IF ISNULL(@SupplierAgentID,0)<=0--原数据库中无数据则插入
29
30 BEGIN INSERT INTO SupplierAgent(AgentName,SupplierID) VALUES
31
32 (@AgentName,@SupplierID)
33
34 IF @@Error <> 0
35
36 BEGIN
37
38 SET @ErrMsg='新增供应商代理失败'
39
40 ROLLBACK TRAN
41
42 GOTO ErrHandler
43
44 END
45
46 SELECT @NewID=SCOPE_IDENTITY()
47
48 END
49
50 ELSE --原数据库中有数据则更新
51
52 BEGIN
53
54 UPDATE SupplierAgent Set AgentName=@AgentName, SupplierID=@SupplierID
55
56 WHERE SupplierAgentID=@SupplierAgentID
57
58 IF @@Error<>0
59
60 BEGIN
61
62 SET @ErrMsg='修改供应商代理失败'
63
64 ROLLBACK TRAN
65
66 GOTO ErrHandler
67
68 END
69
70 SET @NewID=@SupplierAgentID
71
72 END
73
74 COMMIT TRAN
75
76 SELECT @NewID AS BillID
77
78 RETURN
79
80 ErrHandler:
81
82 RAISERROR(@ErrMsg,11,1)
2
3 (--参数
4
5 @SupplierAgentID INT = NULL,
6
7 @AgentName VARCHAR(100),
8
9 @SupplierID INT
10
11 )
12
13 AS
14
15 SET NOCOUNT ON
16
17 SET ANSI_WARNINGS OFF
18
19
20 DECLARE @ErrMsg VARCHAR(80)--错误信息
21
22
23 DECLARE @NewID INT
24
25
26 BEGIN TRAN
27
28 IF ISNULL(@SupplierAgentID,0)<=0--原数据库中无数据则插入
29
30 BEGIN INSERT INTO SupplierAgent(AgentName,SupplierID) VALUES
31
32 (@AgentName,@SupplierID)
33
34 IF @@Error <> 0
35
36 BEGIN
37
38 SET @ErrMsg='新增供应商代理失败'
39
40 ROLLBACK TRAN
41
42 GOTO ErrHandler
43
44 END
45
46 SELECT @NewID=SCOPE_IDENTITY()
47
48 END
49
50 ELSE --原数据库中有数据则更新
51
52 BEGIN
53
54 UPDATE SupplierAgent Set AgentName=@AgentName, SupplierID=@SupplierID
55
56 WHERE SupplierAgentID=@SupplierAgentID
57
58 IF @@Error<>0
59
60 BEGIN
61
62 SET @ErrMsg='修改供应商代理失败'
63
64 ROLLBACK TRAN
65
66 GOTO ErrHandler
67
68 END
69
70 SET @NewID=@SupplierAgentID
71
72 END
73
74 COMMIT TRAN
75
76 SELECT @NewID AS BillID
77
78 RETURN
79
80 ErrHandler:
81
82 RAISERROR(@ErrMsg,11,1)
(3)新建一个视图
1 CREATE VIEW vwSupplierAgent -- 新建一个视图
2
3 AS
4
5 SELECT SA.SupplierAgentID,SA.AgentName,SA.SupplierID,S.SupplierName FROM SupplierAgent SA
6
7 INNER JOIN Supplier S ON SA.SupplierID=S.SupplierID --将两个表连接起来
2
3 AS
4
5 SELECT SA.SupplierAgentID,SA.AgentName,SA.SupplierID,S.SupplierName FROM SupplierAgent SA
6
7 INNER JOIN Supplier S ON SA.SupplierID=S.SupplierID --将两个表连接起来
浙公网安备 33010602011771号