1 2 3 /*
4 ** Messages for "sp_rebuild_text" 18925
5 **
6 ** 17260, "Can't run %1! from within a transaction."
7 ** 17590, "The specified database does not exist."
8 ** 18301, "Database name '%1!' is not the current database."
9 ** 18925 "sp_rebuild_text failed. Check the SQL Server error log file."
10 */11 12 createproceduresp_rebuild_text13 @dbname varchar(255)/* database name */14 as15 16 /*
17 ** If we're in a transaction, disallow this since it might make recovery
18 ** impossible.
19 */20 if @@trancount > 0
21 begin22 /*
23 ** 17260, "Can't run %1! from within a transaction."
24 */25 raiserror 17260, "sp_rebuild_text"
26 return(1)27 end28 29 set chained off30 31 settransactionisolationlevel 1
32 33 /*
34 ** Make sure the database exists.
35 */36 ifnotexists(select*frommaster.dbo.sysdatabases37 wherename=@dbname)38 begin39 /* 17590, "The specified database does not exist." */40 raiserror 17590
41 return(1)42 end43 44 /*
45 ** Make sure that we are in the database specified
46 ** by @dbname.
47 */48 if@dbname!= db_name()49 begin50 /*
51 ** 18301, "Database name '%1!' is not the current database."
52 */53 raiserror 18301,@dbname54 return(1)55 end56 57 /*
58 ** Check if user has sa role, proc_role will also do auditing
59 ** if required. proc_role will also print error message if required.
60 */61 if(proc_role("sa_role")= 0)62 return(1)63 64 /* Uses internal sql to rebuild_text */65 66 dbcc rebuild_text("all")67 68 if(@@error != 0)69 begin70 /*
71 ** 18925, "sp_rebuild_text failed. Check the SQL Server error log file."
72 */73 raiserror 18925
74 return(1)75 end76 77 return(0)78 79
exec sp_procxmode 'sp_rebuild_text', 'AnyMode'
go
Grant Execute on sp_rebuild_text to public
go