home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Internet Business Development Kit / PRODUCT_CD.iso / sqlsvr / ppc / checkobj.sql < prev    next >
Encoding:
Text File  |  1995-12-06  |  25.5 KB  |  623 lines

  1.  
  2. /*
  3. ** CheckObj.SQL        1995/11/13 19:35
  4. **
  5. ** (From old Upgrade.sql)
  6. **
  7. ** Copyright Microsoft, Inc. 1994, 1995, 1996
  8. ** All Rights Reserved.
  9. ** Use, duplication, or disclosure by the United States Government
  10. ** is subject to restrictions as set forth in subdivision (c) (1) (ii)
  11. ** of the Rights in Technical Data and Computer Software clause
  12. ** at CFR 252.227-7013. Microsoft, Inc. One Microsoft Way, Redmond WA
  13. ** 98052.
  14. */
  15.  
  16. go
  17. use master
  18. go
  19. dump tran master with no_log
  20. go
  21. set nocount on
  22. go
  23. go
  24.  
  25. -- - - - -
  26.  
  27.  
  28. if exists (select * from sysobjects where name = 'sp_objcheck'
  29.             and sysstat & 0xf = 4)
  30.     begin
  31.     raiserror('Dropping sp_objcheck...',1,1)
  32.     drop procedure sp_objcheck
  33.     end
  34. go
  35.  
  36. if exists (select * from sysobjects where name = 'sp_check_objects'
  37.             and sysstat & 0xf = 4)
  38.     begin
  39.     raiserror('Dropping sp_check_objects...',1,1)
  40.     drop procedure sp_check_objects
  41.     end
  42. go
  43.  
  44. if exists (select * from sysobjects
  45.         where name = 'MSobjects'
  46.             and sysstat & 0xf = 3)
  47.     begin
  48.     raiserror('Dropping table MSobjects...',1,1)
  49.     drop table MSobjects
  50.     end
  51. go
  52.  
  53. print ''
  54. print 'Creating table of Microsoft created objects.'
  55. go
  56.  
  57. CREATE TABLE MSobjects
  58. (
  59. objectname varchar(30) not null,    -- name of object
  60. object_cat varchar(15) not null,    -- category of object
  61.  
  62. object_stat int           null        -- Bitmap of where we can expect to find this object:
  63.                     -- 1=master_only ,2=msdb_only ,4=all
  64. )
  65. go
  66.  
  67. print ''
  68. print 'Inserting names of base system tables.'
  69. go
  70. insert into MSobjects values ('sysalternates','base',4)
  71. go
  72. insert into MSobjects values ('syscharsets','base',1)
  73. insert into MSobjects values ('syscolumns','base',4)
  74. insert into MSobjects values ('syscomments','base',4)
  75. insert into MSobjects values ('sysconfigures','base',1)
  76. insert into MSobjects values ('syscurconfigs','base',1)
  77. insert into MSobjects values ('sysdatabases','base',1)
  78. insert into MSobjects values ('sysdepends','base',4)
  79. insert into MSobjects values ('sysdevices','base',1)
  80. insert into MSobjects values ('sysindexes','base',4)
  81. insert into MSobjects values ('syskeys','base',4)
  82. insert into MSobjects values ('syslanguages','base',1)
  83. insert into MSobjects values ('syslocks','base',1)
  84. insert into MSobjects values ('syslogins','base',1)
  85. insert into MSobjects values ('syslogs','base',4)
  86. insert into MSobjects values ('sysmessages','base',1)
  87. insert into MSobjects values ('sysobjects','base',4)
  88. insert into MSobjects values ('sysprocedures','base',4)
  89. insert into MSobjects values ('sysprocesses','base',1)
  90. insert into MSobjects values ('sysprotects','base',4)
  91. insert into MSobjects values ('sysremotelogins','base',1)
  92. insert into MSobjects values ('syssegments','base',4)
  93. insert into MSobjects values ('sysservers','base',1)
  94. insert into MSobjects values ('systypes','base',4)
  95. insert into MSobjects values ('sysusages','base',1)
  96. insert into MSobjects values ('sysusers','base',4)
  97. go
  98.  
  99. print ''
  100. print 'Inserting names of catalog objects.'
  101. go
  102. insert into MSobjects values ('sp_column_privileges','catalog',1)
  103. insert into MSobjects values ('sp_columns','catalog',1)
  104. insert into MSobjects values ('sp_databases','catalog',1)
  105. insert into MSobjects values ('sp_datatype_info','catalog',1)
  106. insert into MSobjects values ('sp_fkeys','catalog',1)
  107. insert into MSobjects values ('sp_pkeys','catalog',1)
  108. insert into MSobjects values ('sp_server_info','catalog',1)
  109. insert into MSobjects values ('sp_special_columns','catalog',1)
  110. insert into MSobjects values ('sp_sproc_columns','catalog',1)
  111. insert into MSobjects values ('sp_statistics','catalog',1)
  112. insert into MSobjects values ('sp_stored_procedures','catalog',1)
  113. insert into MSobjects values ('sp_table_privileges','catalog',1)
  114. insert into MSobjects values ('sp_tables','catalog',1)
  115. insert into MSobjects values ('spt_datatype_info','catalog',1)
  116. insert into MSobjects values ('spt_datatype_info_ext','catalog',1)
  117. insert into MSobjects values ('spt_server_info','catalog',1)
  118. go
  119.  
  120. print ''
  121. print 'Inserting names of ''general'' objects.'
  122. go
  123. insert into MSobjects values ('MS_sqlctrs_users','general',1)
  124. insert into MSobjects values ('sp_abort_xact','general',1)
  125. insert into MSobjects values ('sp_addalias','general',1)
  126. insert into MSobjects values ('sp_addextendedproc','general',1)
  127. insert into MSobjects values ('sp_addgroup','general',1)
  128. insert into MSobjects values ('sp_addlanguage','general',1)
  129. insert into MSobjects values ('sp_addlogin','general',1)
  130. insert into MSobjects values ('sp_addmessage','general',1)
  131. insert into MSobjects values ('sp_addremotelogin','general',1)
  132. insert into MSobjects values ('sp_addsegment','general',1)
  133. insert into MSobjects values ('sp_addserver','general',1)
  134. insert into MSobjects values ('sp_addtype','general',1)
  135. insert into MSobjects values ('sp_addumpdevice','general',1)
  136. insert into MSobjects values ('sp_adduser','general',1)
  137. insert into MSobjects values ('sp_altermessage','general',1)
  138. insert into MSobjects values ('sp_bindefault','general',1)
  139. insert into MSobjects values ('sp_bindrule','general',1)
  140. insert into MSobjects values ('sp_certify_removable','general',1)
  141. insert into MSobjects values ('sp_changedbowner','general',1)
  142. insert into MSobjects values ('sp_changegroup','general',1)
  143. insert into MSobjects values ('sp_check_removable','general',1)
  144. insert into MSobjects values ('sp_checknames','general',1)
  145. insert into MSobjects values ('sp_chklangparam','general',1)
  146. insert into MSobjects values ('sp_commit_xact','general',1)
  147. insert into MSobjects values ('sp_commonkey','general',1)
  148. insert into MSobjects values ('sp_configure','general',1)
  149. insert into MSobjects values ('sp_create_removable','general',1)
  150. insert into MSobjects values ('sp_cursor','general',1)
  151. insert into MSobjects values ('sp_cursorclose','general',1)
  152. insert into MSobjects values ('sp_cursorfetch','general',1)
  153. insert into MSobjects values ('sp_cursoropen','general',1)
  154. insert into MSobjects values ('sp_cursoroption','general',1)
  155. insert into MSobjects values ('sp_coalesce_fragments','general',1)
  156. insert into MSobjects values ('sp_dbinstall','general',1)
  157. insert into MSobjects values ('sp_dboption','general',1)
  158. insert into MSobjects values ('sp_dbremove','general',1)
  159. insert into MSobjects values ('sp_defaultdb','general',1)
  160. insert into MSobjects values ('sp_defaultlanguage','general',1)
  161. insert into MSobjects values ('sp_depends','general',1)
  162. insert into MSobjects values ('sp_devcreate','general',1)
  163. insert into MSobjects values ('sp_devoption','general',1)
  164. insert into MSobjects values ('sp_diskdefault','general',1)
  165. insert into MSobjects values ('sp_dropalias','general',1)
  166. insert into MSobjects values ('sp_dropdevice','general',1)
  167. insert into MSobjects values ('sp_dropextendedproc','general',1)
  168. insert into MSobjects values ('sp_dropgroup','general',1)
  169. insert into MSobjects values ('sp_dropkey','general',1)
  170. insert into MSobjects values ('sp_droplanguage','general',1)
  171. insert into MSobjects values ('sp_droplogin','general',1)
  172. insert into MSobjects values ('sp_dropmessage','general',1)
  173. insert into MSobjects values ('sp_dropremotelogin','general',1)
  174. insert into MSobjects values ('sp_dropsegment','general',1)
  175. insert into MSobjects values ('sp_dropserver','general',1)
  176. insert into MSobjects values ('sp_droptype','general',1)
  177. insert into MSobjects values ('sp_dropuser','general',1)
  178. insert into MSobjects values ('sp_extendsegment','general',1)
  179. insert into MSobjects values ('sp_fixindex','general',1)
  180. insert into MSobjects values ('sp_foreignkey','general',1)
  181. insert into MSobjects values ('sp_help','general',1)
  182. insert into MSobjects values ('sp_helpconstraint','general',1)
  183. insert into MSobjects values ('sp_helpdb','general',1)
  184. insert into MSobjects values ('sp_helpdevice','general',1)
  185. insert into MSobjects values ('sp_helpextendedproc','general',1)
  186. insert into MSobjects values ('sp_helpgroup','general',1)
  187. insert into MSobjects values ('sp_helpindex','general',1)
  188. insert into MSobjects values ('sp_helpjoins','general',1)
  189. insert into MSobjects values ('sp_helpkey','general',1)
  190. insert into MSobjects values ('sp_helplanguage','general',1)
  191. insert into MSobjects values ('sp_helplog','general',1)
  192. insert into MSobjects values ('sp_helpremotelogin','general',1)
  193. insert into MSobjects values ('sp_helprotect','general',1)
  194. insert into MSobjects values ('sp_helpsegment','general',1)
  195. insert into MSobjects values ('sp_helpserver','general',1)
  196. insert into MSobjects values ('sp_helpsort','general',1)
  197. insert into MSobjects values ('sp_helpstartup','general',1)
  198. insert into MSobjects values ('sp_helptext','general',1)
  199. insert into MSobjects values ('sp_helpuser','general',1)
  200. insert into MSobjects values ('sp_lock','general',1)
  201. insert into MSobjects values ('sp_lockinfo','general',1)
  202. insert into MSobjects values ('sp_logdevice','general',1)
  203. insert into MSobjects values ('sp_lookup','general',1)
  204. insert into MSobjects values ('sp_makestartup','general',1)
  205. insert into MSobjects values ('sp_markreport','general',1)
  206. insert into MSobjects values ('sp_monitor','general',1)
  207. insert into MSobjects values ('sp_namecrack','general',1)
  208. insert into MSobjects values ('sp_objectsegment','general',1)
  209. insert into MSobjects values ('sp_password','general',1)
  210. insert into MSobjects values ('sp_placeobject','general',1)
  211. insert into MSobjects values ('sp_primarykey','general',1)
  212. insert into MSobjects values ('sp_probe_xact','general',1)
  213. insert into MSobjects values ('sp_processinfo','general',1)
  214. insert into MSobjects values ('sp_processmail','general',1)
  215. insert into MSobjects values ('sp_recompile','general',1)
  216. insert into MSobjects values ('sp_remoteoption','general',1)
  217. insert into MSobjects values ('sp_remove_xact','general',1)
  218. insert into MSobjects values ('sp_rename','general',1)
  219. insert into MSobjects values ('sp_renamedb','general',1)
  220. insert into MSobjects values ('sp_scan_xact','general',1)
  221. insert into MSobjects values ('sp_serveroption','general',1)
  222. insert into MSobjects values ('sp_setlangalias','general',1)
  223. insert into MSobjects values ('sp_setnetname','general',1)
  224. insert into MSobjects values ('sp_spaceused','general',1)
  225. insert into MSobjects values ('sp_sqlexec','general',1)
  226. insert into MSobjects values ('sp_start_xact','general',1)
  227. insert into MSobjects values ('sp_stat_xact','general',1)
  228. insert into MSobjects values ('sp_unbindefault','general',1)
  229. insert into MSobjects values ('sp_unbindrule','general',1)
  230. insert into MSobjects values ('sp_unmakestartup','general',1)
  231. insert into MSobjects values ('sp_validlang','general',1)
  232. insert into MSobjects values ('sp_validname','general',1)
  233. insert into MSobjects values ('sp_who','general',1)
  234. insert into MSobjects values ('spt_committab','general',1)
  235. insert into MSobjects values ('spt_monitor','general',1)
  236. insert into MSobjects values ('xp_cmdshell','general',1)
  237. insert into MSobjects values ('xp_deletemail','general',1)
  238. insert into MSobjects values ('xp_enumgroups','general',1)
  239. insert into MSobjects values ('xp_findnextmsg','general',1)
  240. insert into MSobjects values ('xp_grantlogin','general',1)
  241. insert into MSobjects values ('xp_logevent','general',1)
  242. insert into MSobjects values ('xp_loginconfig','general',1)
  243. insert into MSobjects values ('xp_logininfo','general',1)
  244. insert into MSobjects values ('xp_msver','general',1)
  245. insert into MSobjects values ('xp_readmail','general',1)
  246. insert into MSobjects values ('xp_revokelogin','general',1)
  247. insert into MSobjects values ('xp_sendmail','general',1)
  248. insert into MSobjects values ('xp_sprintf','general',1)
  249. insert into MSobjects values ('xp_sscanf','general',1)
  250. insert into MSobjects values ('xp_startmail','general',1)
  251. insert into MSobjects values ('xp_stopmail','general',1)
  252. go
  253.  
  254. dump tran master with no_log
  255. go
  256.  
  257. print ''
  258. print 'Inserting names of msdb objects.'
  259. go
  260. insert into MSobjects values ('MSWork','msdb',2)
  261. insert into MSobjects values ('NewOrChangedNotification','msdb',2)
  262. insert into MSobjects values ('RemovedNotification','msdb',2)
  263. insert into MSobjects values ('sp_addalert','msdb',2)
  264. insert into MSobjects values ('sp_addnotification','msdb',2)
  265. insert into MSobjects values ('sp_addoperator','msdb',2)
  266. insert into MSobjects values ('sp_addtask','msdb',2)
  267. insert into MSobjects values ('sp_dropalert','msdb',2)
  268. insert into MSobjects values ('sp_dropnotification','msdb',2)
  269. insert into MSobjects values ('sp_dropoperator','msdb',2)
  270. insert into MSobjects values ('sp_droptask','msdb',2)
  271. insert into MSobjects values ('sp_helpalert','msdb',2)
  272. insert into MSobjects values ('sp_helphistory','msdb',2)
  273. insert into MSobjects values ('sp_helpnotification','msdb',2)
  274. insert into MSobjects values ('sp_helpoperator','msdb',2)
  275. insert into MSobjects values ('sp_helptask','msdb',2)
  276. insert into MSobjects values ('sp_MScheckforownedtasks','msdb',2)
  277. insert into MSobjects values ('sp_MStaskparameters','msdb',2)
  278. insert into MSobjects values ('sp_MSsendlargemail','msdb',2)
  279. insert into MSobjects values ('sp_purgehistory','msdb',2)
  280. insert into MSobjects values ('sp_reassigntask','msdb',2)
  281. insert into MSobjects values ('sp_runtask','msdb',2)
  282. insert into MSobjects values ('sp_schedulerlog','msdb',2)
  283. insert into MSobjects values ('sp_schedulerrefresh','msdb',2)
  284. insert into MSobjects values ('sp_schedulersignal','msdb',1)
  285. insert into MSobjects values ('sp_uniquetaskname','msdb',2)
  286. insert into MSobjects values ('sp_updatealert','msdb',2)
  287. insert into MSobjects values ('sp_updatenotification','msdb',2)
  288. insert into MSobjects values ('sp_updateoperator','msdb',2)
  289. insert into MSobjects values ('sp_updatetask','msdb',2)
  290. insert into MSobjects values ('sp_validatealert','msdb',2)
  291. insert into MSobjects values ('sp_verifytask','msdb',2)
  292. insert into MSobjects values ('sp_verifytaskdate','msdb',2)
  293. insert into MSobjects values ('sp_verifytaskid','msdb',2)
  294. insert into MSobjects values ('sp_verifytasksched','msdb',2)
  295. insert into MSobjects values ('sp_verifytasktime','msdb',2)
  296. insert into MSobjects values ('sysalerts','msdb',2)
  297. insert into MSobjects values ('syshistory','msdb',2)
  298. insert into MSobjects values ('syshistory_row_limiter','msdb',2)
  299. insert into MSobjects values ('sysnotifications','msdb',2)
  300. insert into MSobjects values ('sysoperators','msdb',2)
  301. insert into MSobjects values ('systasks','msdb',2)
  302. insert into MSobjects values ('taskrefresh_del','msdb',2)
  303. insert into MSobjects values ('taskrefresh_ins','msdb',2)
  304. insert into MSobjects values ('taskrefresh_upd','msdb',2)
  305. insert into MSobjects values ('sysbackuphistory','msdb',2)
  306. insert into MSobjects values ('sysbackupdetail','msdb',2)
  307. insert into MSobjects values ('sysrestorehistory','msdb',2)
  308. insert into MSobjects values ('sysrestoredetail','msdb',2)
  309. insert into MSobjects values ('sysvolumelabel','msdb',2)
  310. insert into MSobjects values ('sp_get_volume_label','msdb',1)
  311. insert into MSobjects values ('sp_sysbackuphistory','msdb',2)
  312. go
  313.  
  314. /*
  315. print ''
  316. print 'Inserting names helpsql objects.'
  317. insert into MSobjects values ('helpsql','help',1)
  318. insert into MSobjects values ('sp_helpsql','help',1)
  319. */
  320.  
  321. print ''
  322. print 'Inserting names of sqlole objects.'
  323. go
  324. insert into MSobjects values ('sp_MSdbuserprofile','sqlole',1)
  325. insert into MSobjects values ('sp_MSdependencies','sqlole',1)
  326. insert into MSobjects values ('sp_MSfilterclause','sqlole',1)
  327. insert into MSobjects values ('sp_MSforeachdb','sqlole',1)
  328. insert into MSobjects values ('sp_MSforeachtable','sqlole',1)
  329. insert into MSobjects values ('sp_MSforeach_worker','sqlole',1)
  330. insert into MSobjects values ('sp_MSloginmappings','sqlole',1)
  331. insert into MSobjects values ('sp_MSgetalertinfo','sqlole',1)
  332. insert into MSobjects values ('sp_MSgetexecinfo','sqlole',1)
  333. insert into MSobjects values ('sp_MShelpcolumns','sqlole',1)
  334. insert into MSobjects values ('sp_MShelpindex','sqlole',1)
  335. insert into MSobjects values ('sp_MShelptype','sqlole',1)
  336. insert into MSobjects values ('sp_MSindexspace','sqlole',1)
  337. insert into MSobjects values ('sp_MSkilldb','sqlole',1)
  338. insert into MSobjects values ('sp_MSmatchkey','sqlole',1)
  339. insert into MSobjects values ('sp_MSsetalertinfo','sqlole',1)
  340. insert into MSobjects values ('sp_MSsetexecinfo','sqlole',1)
  341. insert into MSobjects values ('sp_MSsettopology','sqlole',1)
  342. insert into MSobjects values ('sp_MSSQLOLE_version','sqlole',1)
  343. insert into MSobjects values ('sp_MSsubscriptions','sqlole',1)
  344. insert into MSobjects values ('sp_MStablechecks','sqlole',1)
  345. insert into MSobjects values ('sp_MStablekeys','sqlole',1)
  346. insert into MSobjects values ('sp_MStablerefs','sqlole',1)
  347. insert into MSobjects values ('sp_MStablespace','sqlole',1)
  348. insert into MSobjects values ('sp_MSuniquename','sqlole',1)
  349. insert into MSobjects values ('sp_MSobjectprivs','sqlole',1)
  350. go
  351.  
  352. dump tran master with no_log
  353. go
  354.  
  355. print ''
  356. print 'Inserting names of sysservermessage objects.'
  357. go
  358. insert into MSobjects values ('sysservermessages','servmsgs',2)
  359. go
  360.  
  361. print ''
  362. print 'Inserting names of replication objects.'
  363. go
  364. insert into MSobjects values ('sp_addarticle','repl',1)
  365. insert into MSobjects values ('sp_addpublication','repl',1)
  366. insert into MSobjects values ('sp_addpublisher','repl',1)
  367. insert into MSobjects values ('sp_addsubscriber','repl',1)
  368. insert into MSobjects values ('sp_addsubscription','repl',1)
  369. insert into MSobjects values ('sp_articlecolumn','repl',1)
  370. insert into MSobjects values ('sp_articlefilter','repl',1)
  371. insert into MSobjects values ('sp_articletextcol','repl',1)
  372. insert into MSobjects values ('sp_textcolstatus','repl',1)
  373. insert into MSobjects values ('sp_articleview','repl',1)
  374. insert into MSobjects values ('sp_changearticle','repl',1)
  375. insert into MSobjects values ('sp_changepublication','repl',1)
  376. insert into MSobjects values ('sp_changesubscriber','repl',1)
  377. insert into MSobjects values ('sp_changesubscription','repl',1)
  378. insert into MSobjects values ('sp_changesubstatus','repl',1)
  379. insert into MSobjects values ('sp_create_distribution_tables','repl',1)
  380. insert into MSobjects values ('sp_distcounters','repl',1)
  381. insert into MSobjects values ('sp_droparticle','repl',1)
  382. insert into MSobjects values ('sp_droppublication','repl',1)
  383. insert into MSobjects values ('sp_droppublisher','repl',1)
  384. insert into MSobjects values ('sp_dropsubscriber','repl',1)
  385. insert into MSobjects values ('sp_dropsubscription','repl',1)
  386. insert into MSobjects values ('sp_dsninfo','repl',1)
  387. insert into MSobjects values ('sp_enumfullsubscribers','repl',1)
  388. insert into MSobjects values ('sp_enumdsn','repl',1)
  389. insert into MSobjects values ('sp_hcchangesubstatus1','repl',1)
  390. insert into MSobjects values ('sp_hcchangesubstatus2','repl',1)
  391. insert into MSobjects values ('sp_helparticle','repl',1)
  392. insert into MSobjects values ('sp_helparticlecolumns','repl',1)
  393. insert into MSobjects values ('sp_helpdistributor','repl',1)
  394. insert into MSobjects values ('sp_helppublication','repl',1)
  395. insert into MSobjects values ('sp_helppublicationsync','repl',1)
  396. insert into MSobjects values ('sp_helpreplicationdb','repl',1)
  397. insert into MSobjects values ('sp_helpsubscriberinfo','repl',1)
  398. insert into MSobjects values ('sp_helpsubscription','repl',1)
  399. insert into MSobjects values ('sp_publishdb','repl',1)
  400. insert into MSobjects values ('sp_replcmds','repl',1)
  401. insert into MSobjects values ('sp_replcounters','repl',1)
  402. insert into MSobjects values ('sp_repldone','repl',1)
  403. insert into MSobjects values ('sp_replflush','repl',1)
  404. insert into MSobjects values ('sp_replica','repl',1)
  405. insert into MSobjects values ('sp_replstatus','repl',1)
  406. insert into MSobjects values ('sp_replsync','repl',1)
  407. insert into MSobjects values ('sp_repltrans','repl',1)
  408. insert into MSobjects values ('sp_subscribe','repl',1)
  409. insert into MSobjects values ('sp_unsubscribe','repl',1)
  410. insert into MSobjects values ('xp_dsninfo','repl',1)
  411. insert into MSobjects values ('xp_enumdsn','repl',1)
  412. go
  413.  
  414. print ''
  415. print 'Inserting names of starfighter objects.'
  416. go
  417. insert into MSobjects values ('xp_availablemedia','star',1)
  418. insert into MSobjects values ('xp_dirtree','star',1)
  419. insert into MSobjects values ('xp_enumerrorlogs','star',1)
  420. insert into MSobjects values ('xp_enumqueuedtasks','star',1)
  421. insert into MSobjects values ('xp_eventlog','star',1)
  422. insert into MSobjects values ('xp_fixeddrives','star',1)
  423. insert into MSobjects values ('xp_monitorsignal','star',1)
  424. insert into MSobjects values ('xp_perfend','star',1)
  425. insert into MSobjects values ('xp_perfmonitor','star',1)
  426. insert into MSobjects values ('xp_perfsample','star',1)
  427. insert into MSobjects values ('xp_perfstart','star',1)
  428. insert into MSobjects values ('xp_readerrorlog','star',1)
  429. insert into MSobjects values ('xp_regaddmultistring','star',1)
  430. insert into MSobjects values ('xp_regdeletevalue','star',1)
  431. insert into MSobjects values ('xp_regenumvalues','star',1)
  432. insert into MSobjects values ('xp_regread','star',1)
  433. insert into MSobjects values ('xp_regremovemultistring','star',1)
  434. insert into MSobjects values ('xp_regwrite','star',1)
  435. insert into MSobjects values ('xp_schedulersignal','star',1)
  436. insert into MSobjects values ('xp_servicecontrol','star',1)
  437. insert into MSobjects values ('xp_subdirs','star',1)
  438. go
  439.  
  440. print ''
  441. print 'Inserting names of instmsgs.sql objects.'
  442. go
  443. insert into MSobjects values ('spt_values','sysmsgs',1)
  444. go
  445.  
  446. print ''
  447. print 'Inserting names of upgrade objects.'
  448. go
  449. insert into MSobjects values ('MSobjects','upgrade',1)
  450. insert into MSobjects values ('sp_check_objects','upgrade',1)
  451. insert into MSobjects values ('sp_db_upgrade','upgrade',1)
  452. insert into MSobjects values ('sp_db_upgrade1','upgrade',1)
  453. insert into MSobjects values ('sp_db_upgrade2','upgrade',1)
  454. insert into MSobjects values ('sp_objcheck','upgrade',1)
  455. insert into MSobjects values ('sysarticles','upgrade',4)
  456. insert into MSobjects values ('sysconstraints','upgrade',4)
  457. insert into MSobjects values ('syspublications','upgrade',4)
  458. insert into MSobjects values ('sysreferences','upgrade',4)
  459. insert into MSobjects values ('syssubscriptions','upgrade',4)
  460. go
  461.  
  462. print ''
  463. print 'Creating procedure ''sp_objcheck''.'
  464. go
  465. create procedure sp_objcheck
  466.     @objcat varchar(15),
  467.     @omit_cat varchar(15)
  468. as
  469.  
  470. declare @curdbname varchar(30)
  471. declare @obj_location int
  472. declare @pmsg varchar(255)
  473.  
  474. select @curdbname = db_name()
  475. /*
  476. ** Set mask for bitmap to determine which objects to look for in
  477. ** this database.
  478. */
  479. select @obj_location = case db_name()
  480.     when 'master' then 5    -- Objects in 'master only' (1) plus
  481.                 -- objects that are in all databases (4).
  482.     when 'msdb' then 6    -- Objects in 'msdb only' (2) plus
  483.                 -- objects that are in all databases (4).
  484.     else 4            -- Only check objects that exist in
  485.                 -- all databases.
  486.     end
  487.  
  488. if exists (select * from master.dbo.MSobjects
  489.         where object_cat like @objcat
  490.             and object_cat <> @omit_cat
  491.             and objectname not in
  492.                 (select name from sysobjects)
  493.             and object_stat & @obj_location <> 0)
  494.     begin
  495.         print ''
  496.         print '============================================================================='
  497.         raiserror('ERROR: Missing objects detected in database ''%s''.'
  498.                   ,11,1,@curdbname)
  499.         print ''
  500.     
  501.         select 'These objects do not exist:' = objectname
  502.         from master.dbo.MSobjects
  503.             where object_cat like @objcat
  504.                 and objectname not in
  505.                     (select name from sysobjects)
  506.             and object_stat & @obj_location <> 0
  507.  
  508.         print '============================================================================='
  509.         raiserror(' ',1,1) with nowait
  510.  
  511.         deallocate db_name_list_csr
  512.  
  513.         raiserror('Objects missing.  Aborting script.',20,127) with log
  514.         return(1)
  515.     end
  516. else
  517.     begin
  518.         select @pmsg='No missing Microsoft objects detected in database: '''+
  519.             db_name()+''''
  520.         print ''
  521.         print @pmsg
  522.         update sysobjects set category = category | 2
  523.             where name in
  524.                 (select objectname from MSobjects
  525.                     where object_cat like @objcat
  526.                         and object_stat & @obj_location <> 0)
  527.                 and id > 100
  528.  
  529.         checkpoint    -- checkpoint this db while we're here.
  530.         return(0)
  531.     end
  532. go
  533.  
  534. print ''
  535. print 'Creating procedure ''sp_check_objects''.'
  536. go
  537. create procedure sp_check_objects
  538.     @obj_cat varchar(15) = '%',
  539.     @omit_cat varchar(15) = 'none'
  540. as
  541.  
  542. declare @dbname varchar(30)
  543. declare @dbsave varchar(30)
  544. declare @pmsg varchar(255)
  545.  
  546. select @dbsave = db_name()    -- Keep track of where we began so we
  547.                 -- can put user back there when done.
  548.  
  549. if @obj_cat is not null and @obj_cat not in (
  550.         '%',        -- nothing supplied, check all objects
  551.         'base',        -- bldmastr.exe
  552.         'catalog',    -- instcat.sql
  553.         'general',    -- instproc.sql    
  554.         'help',        -- helpsql.sql
  555.         'msdb',        -- instmsdb.sql
  556.         'repl',        -- instrepl.sql
  557.         'servmsgs',    -- servmsgs.sql
  558.         'sqlole',    -- sqlole60.sql
  559.         'star',        -- xpstar.sql
  560.         'sysmsgs',    -- instmsgs.sql
  561.         'upgrade')    -- upgrade.sql
  562.     begin
  563.         raiserror('Invalid value entered for @obj_cat',16,1)
  564.         return(1)
  565.     end    
  566.  
  567. declare db_name_list_csr cursor for select name from sysdatabases
  568. open db_name_list_csr
  569.  
  570. fetch db_name_list_csr into @dbname
  571.  
  572. while @@fetch_status >= 0
  573.  
  574.     begin
  575.         declare @dbver int
  576.         dbcc getvalue('current_version')
  577.         select @dbver = @@error        -- Get expected db schema version level
  578.                         -- from server.    
  579.  
  580.  
  581.             /* See if database has been upgraded, if not, skip check. */
  582.         if (select version from master..sysdatabases where name=@dbname) < @dbver
  583.             begin
  584.                 select @pmsg =
  585.                 'Database '''+@dbname+
  586.                 ''' cannot be checked because it has not been upgraded.'
  587.  
  588.                 print ''
  589.                 print @pmsg
  590.                 print 'Please use ''sp_db_upgrade <dbname>'' to upgrade the database.'
  591.             end
  592.         else
  593.             exec('use '+@dbname+' exec sp_objcheck '''+@obj_cat+''','''+@omit_cat+'''')
  594.  
  595.         fetch db_name_list_csr into @dbname    -- Get name of next db
  596.     end
  597.  
  598. if @dbsave <> db_name()        -- Go back to db we started in.
  599.     exec('use '+@dbsave)
  600.  
  601. deallocate db_name_list_csr
  602. go
  603.  
  604. print ''
  605. print 'Now executing ''sp_check_objects''...'
  606. go
  607.  
  608. exec sp_check_objects 'upgrade'
  609. go
  610.  
  611. use master
  612. go
  613.  
  614. print ''
  615. print 'CheckObj.SQL completed.'
  616. go
  617.  
  618. dump tran master with no_log
  619. go
  620. checkpoint
  621. go
  622. -- -
  623.