· 9 years ago · Jan 11, 2017, 07:16 AM
1CREATE PROCEDURE [dbo].[BackUpTable]
2 @TableName sysname
3 AS
4 BEGIN
5
6 SET nocount ON
7
8 DECLARE @sql VARCHAR(500)
9
10 IF EXISTS (SELECT *
11 FROM sys.objects
12 WHERE object_id = Object_id(N'[dbo].[' + @TableName+'_EST' + ']')
13 AND TYPE IN ( N'U' ))
14
15 BEGIN
16 SET @sql = 'declare @Done bit
17 set @Done = 0
18 while @Done = 0
19 begin
20 delete top (100000)
21 from ' + @TableName + '_Bak' +
22 ' if @@rowcount = 0
23 set @Done = 1
24 end;'
25 SET @sql = @sql + 'insert into ' + @TableName + '_Bak select * from ' +
26 @TableName +'_EST'
27
28 EXEC(@sql)
29 END
30 ELSE
31 BEGIN
32 DECLARE @err_message VARCHAR(300)
33
34 SELECT @err_message = 'The table "' + Isnull(@TableName, 'null') +
35 '" does not exist'
36
37 RAISERROR (@err_message, 16, 1)
38
39 END
40
41 END
42
43CREATE OR REPLACE PROCEDURE BackUpTable (IN TableName VARCHAR(128))
44 DYNAMIC RESULT SETS 1
45
46 BackUpTable :BEGIN
47
48 DECLARE variableToHold VARCHAR(500);
49
50
51
52
53 END BackUpTable