Sunteți pe pagina 1din 2

1 --script to set a very basic sp_thresholdaction in <DBISD> database

2 --version 1.0.2
3 --date 04 Oct 2012
4 --changes:
5 --1.0.1 no changes
6 --1.0.2 switch to <DBSID> database automatically
7
8 --------------------------------------------------------------------------------
9 -- determine SAP database
10 --------------------------------------------------------------------------------
11 declare SAPDB_CURSOR cursor FOR SELECT name FROM master..sysdatabases WHERE name NOT
LIKE 'syb%' AND name NOT IN ('master','model','saptools') AND durability = 1 AT
ISOLATION 0
12 go
13 declare @sap_dbname varchar(30)
14 declare @svers_full varchar(128)
15 declare @objid integer
16 open SAPDB_CURSOR
17 fetch SAPDB_CURSOR into @sap_dbname
18 while @@sqlstatus = 0
19 begin
20 set @svers_full = @sap_dbname || '.SAPSR3.SVERS'
21 SELECT @objid = object_id(@svers_full)
22 if @objid > 0
23 begin
24 -- got it
25 break
26 end
27 else
28 begin
29 -- next database
30 fetch SAPDB_CURSOR into @sap_dbname
31 end
32 end
33 close SAPDB_CURSOR
34 deallocate SAPDB_CURSOR
35
36 IF @sap_dbname <> ''
37 begin
38 print "SAP database name is %1!", @sap_dbname
39 end
40 else
41 begin
42 print "Unable to identify SAP database."
43 select syb_quit()
44 end
45
46 use @sap_dbname
47 go
48
49 IF EXISTS (SELECT 1 FROM sysobjects o, sysusers u WHERE o.uid=u.uid AND o.name =
'sp_thresholdaction' AND u.name = 'dbo' AND o.type = 'P')
50 BEGIN
51 setuser 'dbo'
52 drop procedure sp_thresholdaction
53 END
54 go
55
56 setuser 'dbo'
57 go
58
59 create procedure sp_thresholdaction
60 @dbname varchar(30),
61 @segmentname varchar(30),
62 @free_space int,
63 @status int
64 as
65 begin
66 declare @error int
67
68 print "Database '%1!': Begin LCT Log Dump for '%2!': Only '%3!' kb free space
left ", @dbname, @segmentname, @free_space
69
70 exec saptools..sp_dumptrans @dbname
71
72 /* error checking */
73 select @error = @@error
74 if (@error != 0)
75 print "Database '%1!': LCT Log Dump for '%2!' finished with error '%3!'! ",
@dbname, @segmentname, @error
76 else
77 /* print messages to error log */
78 print "Database '%1!': LCT Log Dump finished", @dbname
79 end
80
81 IF (@@error != 0)
82 BEGIN
83 PRINT 'Error %1! CREATING Stored Procedure sp_thresholdaction'
84 SELECT syb_quit()
85 END
86 go
87

S-ar putea să vă placă și