/* buildinstall/11.0.3.3 ESD#6/P-FREE/Linux Intel/Linux 2.2.14 i686/1/OPT/Fri Mar 17 15:47:56 CET 2000 (c) Copyright 1987, 2000. Sybase, Inc. All rights reserved. Unpublished rights reserved under U.S. copyright laws. This software contains confidential and trade secret information of Sybase, Inc. Use, duplication or disclosure of the software and documentation by the U.S. Government is subject to restrictions set forth in a license agreement between the Government and Sybase, Inc. or other written agreement specifying the Government's rights to use the software and any applicable FAR provisions, for example, FAR 52.227-19. Sybase, Inc. 6475 Christie Avenue, Emeryville, CA 94608, USA. */ use master go if exists (select * from sysobjects where name = 'sp_configure') begin execute sp_configure "allow updates", 1 end reconfigure with override go if exists (select * from sysobjects where sysstat & 7 = 4 and name = 'sp_instmsg') begin print "Dropping sp_instmsg" drop procedure sp_instmsg end go if exists (select * from sysobjects where sysstat & 7 = 4 and name = 'sp_checkreswords') begin print "Dropping sp_checkreswords" drop procedure sp_checkreswords end go use master go /* Sccsid = "%Z% generic/sproc/src/%M% %I% %G%" */ use master go delete spt_values where type = "W" go insert spt_values (name, number, type) values ("add", 1 , "W") insert spt_values (name, number, type) values ("all", 2 , "W") insert spt_values (name, number, type) values ("alter", 3 , "W") insert spt_values (name, number, type) values ("and", 4 , "W") insert spt_values (name, number, type) values ("any", 5 , "W") insert spt_values (name, number, type) values ("arith_overflow", 6 , "W") insert spt_values (name, number, type) values ("as", 7 , "W") insert spt_values (name, number, type) values ("asc", 8 , "W") insert spt_values (name, number, type) values ("at", 9 , "W") insert spt_values (name, number, type) values ("authorization", 10 , "W") insert spt_values (name, number, type) values ("avg", 11 , "W") insert spt_values (name, number, type) values ("begin", 12 , "W") insert spt_values (name, number, type) values ("between", 13 , "W") insert spt_values (name, number, type) values ("break", 14 , "W") insert spt_values (name, number, type) values ("browse", 15 , "W") insert spt_values (name, number, type) values ("bulk", 16 , "W") insert spt_values (name, number, type) values ("by", 17 , "W") insert spt_values (name, number, type) values ("cascade", 18 , "W") insert spt_values (name, number, type) values ("char_convert", 19 , "W") insert spt_values (name, number, type) values ("check", 20 , "W") insert spt_values (name, number, type) values ("checkpoint", 21 , "W") go insert spt_values (name, number, type) values ("close", 22 , "W") insert spt_values (name, number, type) values ("clustered", 23 , "W") insert spt_values (name, number, type) values ("commit", 24 , "W") insert spt_values (name, number, type) values ("compute", 25 , "W") insert spt_values (name, number, type) values ("confirm", 26 , "W") insert spt_values (name, number, type) values ("constraint", 27 , "W") insert spt_values (name, number, type) values ("continue", 28 , "W") insert spt_values (name, number, type) values ("controlrow", 29 , "W") insert spt_values (name, number, type) values ("convert", 30 , "W") insert spt_values (name, number, type) values ("count", 31 , "W") insert spt_values (name, number, type) values ("create", 32 , "W") insert spt_values (name, number, type) values ("current", 33 , "W") insert spt_values (name, number, type) values ("cursor", 34 , "W") insert spt_values (name, number, type) values ("data_pgs", 35 , "W") insert spt_values (name, number, type) values ("database", 36 , "W") insert spt_values (name, number, type) values ("dbcc", 37 , "W") insert spt_values (name, number, type) values ("deallocate", 38 , "W") insert spt_values (name, number, type) values ("declare", 39 , "W") insert spt_values (name, number, type) values ("default", 40 , "W") insert spt_values (name, number, type) values ("delete", 41 , "W") go insert spt_values (name, number, type) values ("desc", 42 , "W") insert spt_values (name, number, type) values ("disk", 43 , "W") insert spt_values (name, number, type) values ("distinct", 44 , "W") insert spt_values (name, number, type) values ("double", 45 , "W") insert spt_values (name, number, type) values ("drop", 46 , "W") insert spt_values (name, number, type) values ("dummy", 47 , "W") insert spt_values (name, number, type) values ("dump", 48 , "W") insert spt_values (name, number, type) values ("else", 49 , "W") insert spt_values (name, number, type) values ("end", 50 , "W") insert spt_values (name, number, type) values ("endtran", 51 , "W") insert spt_values (name, number, type) values ("errlvl", 52 , "W") insert spt_values (name, number, type) values ("errordata", 53 , "W") insert spt_values (name, number, type) values ("errorexit", 54 , "W") insert spt_values (name, number, type) values ("escape", 55 , "W") insert spt_values (name, number, type) values ("except", 56 , "W") insert spt_values (name, number, type) values ("exec", 57 , "W") insert spt_values (name, number, type) values ("execute", 58 , "W") insert spt_values (name, number, type) values ("exists", 59 , "W") insert spt_values (name, number, type) values ("exit", 60 , "W") insert spt_values (name, number, type) values ("fetch", 61 , "W") insert spt_values (name, number, type) values ("fillfactor", 62 , "W") go insert spt_values (name, number, type) values ("for", 63 , "W") insert spt_values (name, number, type) values ("foreign", 64 , "W") insert spt_values (name, number, type) values ("from", 65 , "W") insert spt_values (name, number, type) values ("goto", 66 , "W") insert spt_values (name, number, type) values ("grant", 67 , "W") insert spt_values (name, number, type) values ("group", 68 , "W") insert spt_values (name, number, type) values ("having", 69 , "W") insert spt_values (name, number, type) values ("holdlock", 70 , "W") insert spt_values (name, number, type) values ("identity", 71 , "W") insert spt_values (name, number, type) values ("identity_insert", 72 , "W") insert spt_values (name, number, type) values ("if", 73 , "W") insert spt_values (name, number, type) values ("in", 74 , "W") insert spt_values (name, number, type) values ("index", 75 , "W") insert spt_values (name, number, type) values ("insert", 76 , "W") insert spt_values (name, number, type) values ("intersect", 77 , "W") insert spt_values (name, number, type) values ("into", 78 , "W") insert spt_values (name, number, type) values ("is", 79 , "W") insert spt_values (name, number, type) values ("isolation", 80 , "W") insert spt_values (name, number, type) values ("key", 81 , "W") insert spt_values (name, number, type) values ("kill", 82 , "W") go insert spt_values (name, number, type) values ("level", 83 , "W") insert spt_values (name, number, type) values ("like", 84 , "W") insert spt_values (name, number, type) values ("lineno", 85 , "W") insert spt_values (name, number, type) values ("load", 86 , "W") insert spt_values (name, number, type) values ("max", 87 , "W") insert spt_values (name, number, type) values ("max_rows_per_page", 88 , "W") insert spt_values (name, number, type) values ("min", 89 , "W") insert spt_values (name, number, type) values ("mirror", 90 , "W") insert spt_values (name, number, type) values ("mirrorexit", 91 , "W") insert spt_values (name, number, type) values ("national", 92 , "W") insert spt_values (name, number, type) values ("noholdlock", 93 , "W") insert spt_values (name, number, type) values ("nonclustered", 94 , "W") insert spt_values (name, number, type) values ("not", 95 , "W") insert spt_values (name, number, type) values ("null", 96 , "W") insert spt_values (name, number, type) values ("numeric_truncation", 97 , "W") insert spt_values (name, number, type) values ("of", 98 , "W") insert spt_values (name, number, type) values ("off", 99 , "W") insert spt_values (name, number, type) values ("offsets", 100 , "W") insert spt_values (name, number, type) values ("on", 101 , "W") insert spt_values (name, number, type) values ("once", 102 , "W") insert spt_values (name, number, type) values ("online", 103 , "W") insert spt_values (name, number, type) values ("only", 104 , "W") go insert spt_values (name, number, type) values ("open", 105 , "W") insert spt_values (name, number, type) values ("option", 106 , "W") insert spt_values (name, number, type) values ("or", 107 , "W") insert spt_values (name, number, type) values ("order", 108 , "W") insert spt_values (name, number, type) values ("over", 109 , "W") insert spt_values (name, number, type) values ("partition", 110 , "W") insert spt_values (name, number, type) values ("perm", 111 , "W") insert spt_values (name, number, type) values ("permanent", 112 , "W") insert spt_values (name, number, type) values ("plan", 113 , "W") insert spt_values (name, number, type) values ("precision", 114 , "W") insert spt_values (name, number, type) values ("prepare", 115 , "W") insert spt_values (name, number, type) values ("primary", 116 , "W") insert spt_values (name, number, type) values ("print", 117 , "W") insert spt_values (name, number, type) values ("privileges", 118 , "W") insert spt_values (name, number, type) values ("proc", 119 , "W") insert spt_values (name, number, type) values ("procedure", 120 , "W") insert spt_values (name, number, type) values ("processexit", 121 , "W") insert spt_values (name, number, type) values ("public", 122 , "W") insert spt_values (name, number, type) values ("raiserror", 123 , "W") insert spt_values (name, number, type) values ("read", 124 , "W") insert spt_values (name, number, type) values ("readtext", 125 , "W") go insert spt_values (name, number, type) values ("reconfigure", 126 , "W") insert spt_values (name, number, type) values ("references", 127 , "W") insert spt_values (name, number, type) values ("replace", 128 , "W") insert spt_values (name, number, type) values ("reserved_pgs", 129 , "W") insert spt_values (name, number, type) values ("return", 130 , "W") insert spt_values (name, number, type) values ("revoke", 131 , "W") insert spt_values (name, number, type) values ("role", 132 , "W") insert spt_values (name, number, type) values ("rollback", 133 , "W") insert spt_values (name, number, type) values ("rowcnt", 134 , "W") insert spt_values (name, number, type) values ("rowcount", 135 , "W") insert spt_values (name, number, type) values ("rows", 136 , "W") insert spt_values (name, number, type) values ("rule", 137 , "W") insert spt_values (name, number, type) values ("save", 138 , "W") insert spt_values (name, number, type) values ("schema", 139 , "W") insert spt_values (name, number, type) values ("select", 140 , "W") insert spt_values (name, number, type) values ("set", 141 , "W") insert spt_values (name, number, type) values ("setuser", 142 , "W") insert spt_values (name, number, type) values ("shared", 143 , "W") insert spt_values (name, number, type) values ("shutdown", 144 , "W") insert spt_values (name, number, type) values ("some", 145 , "W") go insert spt_values (name, number, type) values ("statistics", 146 , "W") insert spt_values (name, number, type) values ("stripe", 147 , "W") insert spt_values (name, number, type) values ("sum", 148 , "W") insert spt_values (name, number, type) values ("syb_identity", 149 , "W") insert spt_values (name, number, type) values ("syb_restree", 150 , "W") insert spt_values (name, number, type) values ("syb_terminate", 151 , "W") insert spt_values (name, number, type) values ("table", 152 , "W") insert spt_values (name, number, type) values ("temp", 153 , "W") insert spt_values (name, number, type) values ("temporary", 154 , "W") insert spt_values (name, number, type) values ("textsize", 155 , "W") insert spt_values (name, number, type) values ("to", 156 , "W") insert spt_values (name, number, type) values ("tran", 157 , "W") insert spt_values (name, number, type) values ("transaction", 158 , "W") insert spt_values (name, number, type) values ("trigger", 159 , "W") insert spt_values (name, number, type) values ("truncate", 160 , "W") insert spt_values (name, number, type) values ("tsequal", 161 , "W") insert spt_values (name, number, type) values ("union", 162 , "W") insert spt_values (name, number, type) values ("unique", 163 , "W") insert spt_values (name, number, type) values ("unpartition", 164 , "W") insert spt_values (name, number, type) values ("update", 165 , "W") insert spt_values (name, number, type) values ("use", 166 , "W") insert spt_values (name, number, type) values ("used_pgs", 167 , "W") go insert spt_values (name, number, type) values ("user", 168 , "W") insert spt_values (name, number, type) values ("user_option", 169 , "W") insert spt_values (name, number, type) values ("using", 170 , "W") insert spt_values (name, number, type) values ("values", 171 , "W") insert spt_values (name, number, type) values ("varying", 172 , "W") insert spt_values (name, number, type) values ("view", 173 , "W") insert spt_values (name, number, type) values ("waitfor", 174 , "W") insert spt_values (name, number, type) values ("where", 175 , "W") insert spt_values (name, number, type) values ("while", 176 , "W") insert spt_values (name, number, type) values ("with", 177 , "W") insert spt_values (name, number, type) values ("work", 178 , "W") insert spt_values (name, number, type) values ("writetext", 179 , "W") go if exists (select * from sysobjects where sysstat & 7 = 4 and name = 'sp_instmsg') begin drop procedure sp_instmsg end go print "Installing sp_instmsg" go /* Sccsid = "%Z% generic/sproc/src/%M% %I% %G%" */ /* ** These messages go into the installupgrade script, which is loaded into ** the prior Server release as part of the upgrade process. */ create procedure sp_instmsg @msg_num int, @msg_text varchar(255) as declare @description varchar(255) select @description = description from sysmessages where error = @msg_num and langid is null if @description = @msg_text return 1 if @description is not null delete sysmessages where error = @msg_num if @msg_text is null return 2 /* Note: this version of sp_instmsg works on 4.x and 10.0 */ insert sysmessages (error, severity, dlevel, description, langid) values (@msg_num, 0, 0, @msg_text, null) return 0 go /* ** Messages for "sp_checkreswords" 18035 */ exec sp_instmsg 17232, "No user with the specified name exists in the current database." exec sp_instmsg 18035, "Reserved Words Used as Database Object Names for Database," exec sp_instmsg 18036, " Upgrade renames sysobjects.schema to sysobjects.schemacnt." exec sp_instmsg 18037, " Found no reserved words used as names for database-wide objects." exec sp_instmsg 18038, " Found no reserved words used as database object names." go drop procedure sp_instmsg go if exists (select * from sysobjects where sysstat & 7 = 4 and name = 'sp_checkreswords') begin drop procedure sp_checkreswords end go print "Installing sp_checkreswords" go /* Sccsid = "%Z% generic/sproc/src/%M% %I% %G%" */ if exists (select name from sysobjects where name = "sp_checkreswords") drop proc sp_checkreswords go /* **Messages for "sp_checkreswords" 18035 ** ** 17232, "No user with the specified name exists in the current database." ** 18035, "Reserved Words Used as Database Object Names for Database, " ** 18036, " Upgrade renames sysobjects.schema to sysobjects.schemacnt." ** 18037, " Found no reserved words used as names for database-wide objects." ** 18038, " Found no reserved words used as database object names." */ create procedure sp_checkreswords @user_name_param varchar(30) = NULL as declare @msg varchar(250) declare @baduse_cnt int /* Return the count of items that */ /* have reserved word names. */ declare @owner_cnt int /* Count of owner-based bad items */ declare @uid_param smallint declare @user_name varchar(30) declare @dbname varchar(30) declare @uid smallint /* ** Note: do not set isolation level, because this sproc must run in ** 4.x as well as System 10. ** ** Also, do not call sp_getmessage since this sproc must run on 4.8 ** which cannot support the '%1!' syntax in the print statement. ** The main side affect of this is that the messages printed out by ** this sproc are not localized. */ set nocount on /* ** 18035, "Reserved Words Used as Database Object Names for Database, " ** ** NOTE: sp_getmessage is not used for retrieving message text ** because this sproc must also run on 4.8 servers which cannot ** support the '%1!' syntax in the print statement. */ select @dbname = db_name() select @msg = description from master.dbo.sysmessages where error = 18035 and langid is NULL select @msg = @msg + @dbname + "." print @msg print "" select @baduse_cnt = 0 create table #uids ( uid smallint NULL, catagory char(1) ) if (@user_name_param is NULL or @user_name_param = "dbo") begin /* ** 18036, " Upgrade renames sysobjects schema to sysobjects schemacnt." ** ** NOTE: sp_getmessage is not used for retrieving message text ** because this sproc must also run on 4.8 servers which cannot ** support the '%1!' syntax in the print statement. */ select @msg = description from master.dbo.sysmessages where error = 18036 and langid is NULL print @msg print "" end if (@user_name_param is not NULL) begin select @uid_param = user_id(@user_name_param) if (@uid_param is NULL) begin /* ** 17232, "No user with the specified name exists in the ** current database." ** ** NOTE: sp_getmessage is not used for retrieving message text ** because this sproc must also run on 4.8 servers which cannot ** support the '%1!' syntax in the print statement. */ select @msg = description from master.dbo.sysmessages where error = 17232 and langid is NULL print @msg return(0) end insert #uids select o.uid, "c" from sysobjects o, master.dbo.spt_values v, syscolumns c where lower(c.name) = v.name and v.type = 'W' and c.id = o.id and o.uid = @uid_param and not (o.id = 1 and c.name = "schema") group by o.uid order by o.uid insert #uids select o.uid, "i" from sysobjects o, master.dbo.spt_values v, sysindexes i where lower(i.name) = v.name and v.type = 'W' and i.id = o.id and o.uid = @uid_param and i.indid != 0 and i.indid != 255 group by o.uid order by o.uid insert #uids select o.uid, "o" from sysobjects o, master.dbo.spt_values v where lower(o.name) = v.name and v.type = 'W' and o.uid = @uid_param group by o.uid order by o.uid insert #uids select t.uid, "t" from systypes t, master.dbo.spt_values v where lower(t.name) = v.name and v.type = 'W' and t.uid = @uid_param group by t.uid order by t.uid end else begin /* ** Get the uids into a temp table. */ insert #uids select o.uid, "c" from sysobjects o, master.dbo.spt_values v, syscolumns c where lower(c.name) = v.name and v.type = 'W' and c.id = o.id and not (o.id = 1 and c.name = "schema") group by o.uid order by o.uid insert #uids select o.uid, "i" from sysobjects o, master.dbo.spt_values v, sysindexes i where lower(i.name) = v.name and v.type = 'W' and i.id = o.id and i.indid != 0 and i.indid != 255 group by o.uid order by o.uid insert #uids select o.uid, "o" from sysobjects o, master.dbo.spt_values v where lower(o.name) = v.name and v.type = 'W' group by o.uid order by o.uid insert #uids select t.uid, "t" from systypes t, master.dbo.spt_values v where lower(t.name) = v.name and v.type = 'W' group by t.uid order by t.uid end /* Not using cursors because this sproc must run in 4.x, in order for ** clients to check their databases before upgrade. */ select @user_name = min(user_name(uid)) from #uids while (@user_name is not NULL) begin /* Print the owner-specific information: ** columns, indexes, objects(tables, sprocs, etc.), and datatypes */ select @uid = user_id(@user_name) select "Owner" = @user_name if exists (select * from #uids where user_name(uid) = @user_name and catagory = "c") begin select "Table" = o.name, "Reserved Word Column Names " = c.name from sysobjects o, master.dbo.spt_values v, syscolumns c where lower(c.name) = v.name and v.type = 'W' and c.id = o.id and o.uid = @uid and not (o.id = 1 and c.name = "schema") order by o.name, c.name select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from #uids where user_name(uid) = @user_name and catagory = "i") begin select "Table" = o.name, "Reserved Word Index Names" = i.name from sysobjects o, master.dbo.spt_values v, sysindexes i where lower(i.name) = v.name and v.type = 'W' and i.id = o.id and o.uid = @uid and i.indid != 0 and i.indid != 255 order by o.name, i.name select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from #uids where user_name(uid) = @user_name and catagory = "o") begin select "Object Type" = convert(char(30), x.name), "Reserved Word Object Names" = o.name from sysobjects o, master.dbo.spt_values v, master.dbo.spt_values x where lower(o.name) = v.name and v.type = 'W' and o.uid = @uid and o.sysstat & 2063 = x.number and x.type = "O" order by x.name, o.name select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from #uids where user_name(uid) = @user_name and catagory = "t") begin select "Reserved Word Datatype Names" = t.name from systypes t, master.dbo.spt_values v where lower(t.name) = v.name and v.type = 'W' and t.uid = @uid order by t.name select @baduse_cnt = @baduse_cnt + @@rowcount end /* Get next id */ select @user_name = min(user_name(uid)) from #uids where user_name(uid) > @user_name /* If there are more user names, print a dividing mark between them. */ if (@user_name != NULL) begin select "-------------------------------------------------------------" end end if (@user_name_param is NULL) begin select @owner_cnt = @baduse_cnt if (@baduse_cnt != 0) begin select "-------------------------------------------------------------" end select "Database-wide Objects" = " " /* ** Print the database wide objects: users and segments */ if exists (select * from sysusers u, master.dbo.spt_values v where lower(u.name) = v.name and v.type = 'W' and u.name != "public") begin select "Reserved Word User Names" = u.name from sysusers u, master.dbo.spt_values v where lower(u.name) = v.name and v.type = 'W' and u.name != "public" order by u.name select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from syssegments s, master.dbo.spt_values v where lower(s.name) = v.name and v.type = 'W' and s.name != "default") begin select "Reserved Word Segment Names" = s.name from syssegments s, master.dbo.spt_values v where lower(s.name) = v.name and v.type = 'W' and s.name != "default" order by s.name select @baduse_cnt = @baduse_cnt + @@rowcount end if (db_name() = "master") begin /* Print the Server-wide information: ** logins, charsets, databases, and languages */ if exists (select * from master.dbo.syslogins l, master.dbo.spt_values v where lower(l.name) = v.name and v.type = 'W') begin select "Reserved Word Login Names" = l.name from master.dbo.syslogins l, master.dbo.spt_values v where lower(l.name) = v.name and v.type = 'W' order by l.name select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from master.dbo.syscharsets c, master.dbo.spt_values v where lower(c.name) = v.name and v.type = 'W') begin select "Reserved Word Charset Names" = c.name from master.dbo.syscharsets c, master.dbo.spt_values v where lower(c.name) = v.name and v.type = 'W' order by c.name select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from master.dbo.sysdatabases d, master.dbo.spt_values v where lower(d.name) = v.name and v.type = 'W') begin select "Reserved Word Database Names" = d.name from master.dbo.sysdatabases d, master.dbo.spt_values v where lower(d.name) = v.name and v.type = 'W' order by d.name select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from master.dbo.syslanguages l, master.dbo.spt_values v where lower(l.name) = v.name and v.type = 'W') begin select "Reserved Word Language Names" = l.name from master.dbo.syslanguages l, master.dbo.spt_values v where lower(l.name) = v.name and v.type = 'W' order by l.name select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from master.dbo.sysdevices d, master.dbo.spt_values v where lower(d.name) = v.name and v.type = 'W') begin select "Reserved Word Device Names" = d.name from master.dbo.sysdevices d, master.dbo.spt_values v where lower(d.name) = v.name and v.type = 'W' order by d.name select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from master.dbo.sysremotelogins r, master.dbo.spt_values v where lower(r.remoteusername) = v.name and v.type = 'W') begin select "Reserved Word Remote Logins" = r.remoteusername from master.dbo.sysremotelogins r, master.dbo.spt_values v where lower(r.remoteusername) = v.name and v.type = 'W' order by r.remoteusername select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from master.dbo.sysservers s, master.dbo.spt_values v where lower(s.srvname) = v.name and v.type = 'W') begin select "Reserved Word Server Names" = s.srvname from master.dbo.sysservers s, master.dbo.spt_values v where lower(s.srvname) = v.name and v.type = 'W' order by s.srvname select @baduse_cnt = @baduse_cnt + @@rowcount end if exists (select * from master.dbo.sysservers s, master.dbo.spt_values v where lower(s.srvnetname) = v.name and v.type = 'W') begin select "Reserved Word ServerNetNames" = s.srvnetname from master.dbo.sysservers s, master.dbo.spt_values v where lower(s.srvnetname) = v.name and v.type = 'W' order by s.srvnetname select @baduse_cnt = @baduse_cnt + @@rowcount end end if (@baduse_cnt != 0 and @owner_cnt = @baduse_cnt) begin /* ** 18037, " Found no reserved words used as names for ** database-wide objects." ** ** NOTE: sp_getmessage is not used for retrieving message text ** because this sproc must also run on 4.8 servers which cannot ** support the '%1!' syntax in the print statement. */ select @msg = description from master.dbo.sysmessages where error = 18037 and langid is NULL print @msg end end if (@baduse_cnt = 0) begin /* ** 18038, " Found no reserved words used as database object names." ** ** NOTE: sp_getmessage is not used for retrieving message text ** because this sproc must also run on 4.8 servers which cannot ** support the '%1!' syntax in the print statement. */ select @msg = description from master.dbo.sysmessages where error = 18038 and langid is NULL print @msg end return(@baduse_cnt) go go grant execute on sp_checkreswords to public go dump transaction master with truncate_only go sp_configure "allow updates", 0 go reconfigure with override go print 'Upgrade installation is complete.' go