home *** CD-ROM | disk | FTP | other *** search
/ Enter 2001 April / EnterCD4.iso / Update / SQL Server SP3 / sql70sp3i.exe / INSTALL / xpstar.sql < prev   
Encoding:
Text File  |  1999-04-04  |  18.0 KB  |  607 lines

  1. /********************************************************************************************/
  2. /* XPSTAR.SQL - Extended Stored Procedures for the SQL Server Enterprise Components         */
  3. /********************************************************************************************/
  4. use master
  5. go
  6.  
  7. /********************************************************************************************/
  8. /* DROP EXISTING XP's first                                                                 */
  9. /********************************************************************************************/
  10. if exists (select * from master.dbo.sysobjects where name = 'xp_regread')
  11.   EXEC sp_dropextendedproc 'xp_regread'
  12. go
  13.  
  14. if exists (select * from master.dbo.sysobjects where name = 'xp_regwrite')
  15.   EXEC sp_dropextendedproc 'xp_regwrite'
  16. go
  17. if exists (select * from master.dbo.sysobjects where name = 'xp_regdeletevalue')
  18.   EXEC sp_dropextendedproc 'xp_regdeletevalue'
  19. go
  20.  
  21. if exists (select * from master.dbo.sysobjects where name = 'xp_regdeletekey')
  22.   EXEC sp_dropextendedproc 'xp_regdeletekey'
  23. go
  24.  
  25. if exists (select * from master.dbo.sysobjects where name = 'xp_regaddmultistring')
  26.   EXEC sp_dropextendedproc 'xp_regaddmultistring'
  27. go
  28.  
  29. if exists (select * from master.dbo.sysobjects where name = 'xp_regremovemultistring')
  30.   EXEC sp_dropextendedproc 'xp_regremovemultistring'
  31. go
  32.  
  33. if exists (select * from master.dbo.sysobjects where name = 'xp_regenumvalues')
  34.   EXEC sp_dropextendedproc 'xp_regenumvalues'
  35. go
  36.  
  37. if exists (select * from master.dbo.sysobjects where name = 'xp_readerrorlog')
  38.   EXEC sp_dropextendedproc 'xp_readerrorlog'
  39. go
  40.  
  41. if exists (select * from master.dbo.sysobjects where name = 'sp_readerrorlog')
  42.   drop procedure sp_readerrorlog
  43. go
  44.  
  45. if exists (select * from master.dbo.sysobjects where name = 'xp_enumerrorlogs')
  46.   EXEC sp_dropextendedproc 'xp_enumerrorlogs'
  47. go
  48.  
  49. if exists (select * from master.dbo.sysobjects where name = 'sp_enumerrorlogs')
  50.   drop procedure sp_enumerrorlogs
  51. go
  52.  
  53. if exists (select * from master.dbo.sysobjects where name = 'xp_getfiledetails')
  54.   EXEC sp_dropextendedproc 'xp_getfiledetails'
  55. go
  56.  
  57. if exists (select * from master.dbo.sysobjects where name = 'xp_perfsample')
  58.   EXEC sp_dropextendedproc 'xp_perfsample'
  59. go
  60.  
  61. if exists (select * from master.dbo.sysobjects where name = 'xp_perfstart')
  62.   EXEC sp_dropextendedproc 'xp_perfstart'
  63. go
  64.  
  65. if exists (select * from master.dbo.sysobjects where name = 'xp_perfend')
  66.   EXEC sp_dropextendedproc 'xp_perfend'
  67. go
  68.  
  69. if exists (select * from master.dbo.sysobjects where name = 'xp_perfmonitor')
  70.   EXEC sp_dropextendedproc 'xp_perfmonitor'
  71. go
  72.  
  73. if exists (select * from master.dbo.sysobjects where name = 'xp_servicecontrol')
  74.   EXEC sp_dropextendedproc 'xp_servicecontrol'
  75. go
  76.  
  77. if exists (select * from master.dbo.sysobjects where name = 'xp_availablemedia')
  78.   EXEC sp_dropextendedproc 'xp_availablemedia'
  79. go
  80.  
  81. if exists (select * from master.dbo.sysobjects where name = 'xp_dirtree')
  82.   EXEC sp_dropextendedproc 'xp_dirtree'
  83. go
  84.  
  85. if exists (select * from master.dbo.sysobjects where name = 'xp_eventlog')
  86.   EXEC sp_dropextendedproc 'xp_eventlog'
  87. go
  88.  
  89. if exists (select * from master.dbo.sysobjects where name = 'sp_eventlog')
  90.   drop procedure sp_eventlog
  91. go
  92.  
  93.  
  94. if exists (select * from master.dbo.sysobjects where name = 'xp_fixeddrives')
  95.   EXEC sp_dropextendedproc 'xp_fixeddrives'
  96. go
  97.  
  98. if exists (select * from master.dbo.sysobjects where name = 'xp_subdirs')
  99.   EXEC sp_dropextendedproc 'xp_subdirs'
  100. go
  101.  
  102. if exists (select * from master.dbo.sysobjects where name = 'xp_getnetname')
  103.   EXEC sp_dropextendedproc 'xp_getnetname'
  104. go
  105.  
  106. if exists (select * from master.dbo.sysobjects where name = 'xp_snmp_getstate')
  107.   EXEC sp_dropextendedproc 'xp_snmp_getstate'
  108. go
  109.  
  110. if exists (select * from master.dbo.sysobjects where name = 'xp_snmp_raisetrap')
  111.   EXEC sp_dropextendedproc 'xp_snmp_raisetrap'
  112. go
  113.  
  114. if exists(select * from master.dbo.sysobjects where type = 'X' and name = 'xp_sqltrace')
  115.   EXEC sp_dropextendedproc 'xp_sqltrace'
  116. go
  117.  
  118. if exists(select * from master.dbo.sysobjects where type = 'X' and name = 'sp_IsMBCSLeadByte')
  119.   EXEC sp_dropextendedproc 'sp_IsMBCSLeadByte'
  120. go
  121.  
  122. if exists(select * from master.dbo.sysobjects where type = 'X' and name = 'sp_GetMBCSCharLen')
  123.   EXEC sp_dropextendedproc 'sp_GetMBCSCharLen'
  124. go
  125.  
  126. if exists (select * from master.dbo.sysobjects where name = 'xp_check_query_results')
  127.   EXEC sp_dropextendedproc 'xp_check_query_results'
  128. go
  129.  
  130. if exists (select * from master.dbo.sysobjects where name = 'xp_enum_activescriptengines')
  131.   EXEC sp_dropextendedproc 'xp_enum_activescriptengines'
  132. go
  133.  
  134. if exists (select * from master.dbo.sysobjects where name = 'xp_sqlagent_monitor')
  135.   EXEC sp_dropextendedproc 'xp_sqlagent_monitor'
  136. go
  137.  
  138. if exists (select * from master.dbo.sysobjects where name = 'xp_sqlagent_notify')
  139.   EXEC sp_dropextendedproc 'xp_sqlagent_notify'
  140. go
  141.  
  142. if exists (select * from master.dbo.sysobjects where name = 'xp_sqlagent_enum_jobs')
  143.   EXEC sp_dropextendedproc 'xp_sqlagent_enum_jobs'
  144. go
  145.  
  146. if exists (select * from master.dbo.sysobjects where name = 'xp_sqlagent_is_starting')
  147.   EXEC sp_dropextendedproc 'xp_sqlagent_is_starting'
  148. go
  149.  
  150. if exists (select * from master.dbo.sysobjects where name = 'xp_fileexist')
  151.   EXEC sp_dropextendedproc 'xp_fileexist'
  152. go
  153.  
  154. if exists (select * from master.dbo.sysobjects where name = 'xp_ntsec_enumdomains')
  155.   EXEC sp_dropextendedproc 'xp_ntsec_enumdomains'
  156. go
  157.  
  158. if exists (select * from master.dbo.sysobjects where name = 'xp_ntsec_enumusers')
  159.   EXEC sp_dropextendedproc 'xp_ntsec_enumusers'
  160. go
  161.  
  162. if exists (select * from master.dbo.sysobjects where name = 'xp_ntsec_enumgroups')
  163.   EXEC sp_dropextendedproc 'xp_ntsec_enumgroups'
  164. go
  165.  
  166. if exists (select * from master.dbo.sysobjects where name = 'xp_terminate_process')
  167.   EXEC sp_dropextendedproc 'xp_terminate_process'
  168. go
  169.  
  170. if exists (select * from master.dbo.sysobjects where name = 'xp_msx_enlist')
  171.   EXEC sp_dropextendedproc 'xp_msx_enlist'
  172. go
  173.  
  174. if exists (select * from master.dbo.sysobjects where name = 'xp_sqlmaint')
  175.   EXEC sp_dropextendedproc 'xp_sqlmaint'
  176. go
  177.  
  178. if exists (select * from master.dbo.sysobjects where name = 'xp_get_mapi_profiles')
  179.   EXEC sp_dropextendedproc 'xp_get_mapi_profiles'
  180. go
  181.  
  182. if exists (select * from master.dbo.sysobjects where name = 'xp_test_mapi_profile')
  183.   EXEC sp_dropextendedproc 'xp_test_mapi_profile'
  184. go
  185.  
  186. if exists (select * from master.dbo.sysobjects where name = 'xp_get_mapi_default_profile')
  187.   EXEC sp_dropextendedproc 'xp_get_mapi_default_profile'
  188. go
  189.  
  190. if exists (select * from master.dbo.sysobjects where name = 'xp_get_tape_devices')
  191.   EXEC sp_dropextendedproc 'xp_get_tape_devices'
  192. go
  193.  
  194. if exists (select * from master.dbo.sysobjects where name = 'xp_enum_oledb_providers')
  195.   EXEC sp_dropextendedproc 'xp_enum_oledb_providers'
  196. go
  197.  
  198. if exists (select * from master.dbo.sysobjects where name = 'xp_prop_oledb_provider')
  199.   EXEC sp_dropextendedproc 'xp_prop_oledb_provider'
  200. go
  201.  
  202. if exists (select * from master.dbo.sysobjects where name = 'xp_updateFTSSQLAccount')
  203.   EXEC sp_dropextendedproc 'xp_updateFTSSQLAccount'
  204. go
  205.  
  206. if exists(select * from sysobjects where type = 'X' and name = 'xp_sqlregister')
  207.   EXEC sp_dropextendedproc 'xp_sqlregister'
  208. go
  209.  
  210. if exists (select * from sysobjects where type = 'P' and name = 'sp_sqlregister')
  211.   drop procedure sp_sqlregister
  212. go
  213.  
  214. if exists(select * from sysobjects where type = 'X' and name = 'xp_sqlinventory')
  215.   EXEC sp_dropextendedproc 'xp_sqlinventory'
  216. go
  217.  
  218. if exists (select * from master.dbo.sysobjects where name = 'xp_writesqlinfo')
  219.   EXEC sp_dropextendedproc 'xp_writesqlinfo'
  220. go
  221.  
  222. /********************************************************************************************/
  223. /* If sp_MSgetversion exists as SP drop it otherwise drop the extended proc                 */
  224. /********************************************************************************************/
  225. if exists (select * from master.dbo.sysobjects where type = 'P' and name = 'sp_MSgetversion')
  226.         drop procedure sp_MSgetversion
  227. else if exists (select * from master.dbo.sysobjects where type = 'X' and name = 'sp_MSgetversion')
  228.   EXEC sp_dropextendedproc 'sp_MSgetversion'
  229. go
  230.  
  231. /********************************************************************************************/
  232. exec sp_MS_upd_sysobj_category 1
  233. go
  234. /********************************************************************************************/
  235.  
  236. /********************************************************************************************/
  237. /* Create XP's                                                                              */
  238. /********************************************************************************************/
  239. print 'Creating extended stored procedure xp_regread'
  240. go
  241. sp_addextendedproc 'xp_regread','xpstar.dll'
  242. go
  243. grant execute on xp_regread to public
  244. go
  245.  
  246. print 'Creating extended stored procedure xp_regwrite'
  247. go
  248. sp_addextendedproc 'xp_regwrite','xpstar.dll'
  249. go
  250.  
  251. print 'Creating extended stored procedure xp_regdeletevalue'
  252. go
  253. sp_addextendedproc 'xp_regdeletevalue','xpstar.dll'
  254. go
  255.  
  256. print 'Creating extended stored procedure xp_regaddmultistring'
  257. go
  258. sp_addextendedproc 'xp_regaddmultistring','xpstar.dll'
  259. go
  260.  
  261. print 'Creating extended stored procedure xp_regremovemultistring'
  262. go
  263. sp_addextendedproc 'xp_regremovemultistring','xpstar.dll'
  264. go
  265.  
  266. print 'Creating extended stored procedure xp_regenumvalues'
  267. go
  268. sp_addextendedproc 'xp_regenumvalues','xpstar.dll'
  269. go
  270.  
  271. print 'Creating extended stored procedure xp_readerrorlog'
  272. go
  273. sp_addextendedproc 'xp_readerrorlog','xpstar.dll'
  274. go
  275.  
  276. print 'Creating stored procedure sp_readerrorlog'
  277. go
  278. create proc sp_readerrorlog(
  279.     @p1        int = 0,
  280.     @p2        varchar(255) = NULL,
  281.     @p3        varchar(255) = NULL,
  282.     @p4        varchar(255) = NULL)
  283. as
  284. begin
  285.  
  286.     IF (not is_srvrolemember('securityadmin') = 1)
  287.     begin
  288.        raiserror(15003,-1,-1, 'securityadmin')
  289.        return (1)
  290.     end
  291.     if (@p1 = 0)
  292.         exec xp_readerrorlog
  293.     else if (@p2 is NULL)
  294.         exec xp_readerrorlog @p1
  295.     else
  296.         exec xp_readerrorlog @p1,@p2,@p3,@p4
  297. end
  298. go
  299. grant execute on sp_readerrorlog to public
  300. go
  301.  
  302. print 'Creating extended stored procedure xp_enumerrorlogs'
  303. go
  304. sp_addextendedproc 'xp_enumerrorlogs','xpstar.dll'
  305. go
  306.  
  307. print 'Creating stored procedure sp_enumerrorlogs'
  308. go
  309. create proc sp_enumerrorlogs
  310. as
  311. begin
  312.  
  313.     IF (not is_srvrolemember('securityadmin') = 1)
  314.     begin
  315.        raiserror(15003,-1,-1, 'securityadmin')
  316.        return (1)
  317.     end
  318.     exec xp_enumerrorlogs
  319. end
  320. go
  321. grant execute on sp_enumerrorlogs to public
  322. go
  323.  
  324. print 'Creating extended stored procedure xp_getfiledetails'
  325. go
  326. sp_addextendedproc 'xp_getfiledetails','xpstar.dll'
  327. go
  328. grant execute on xp_getfiledetails to public
  329. go
  330.  
  331. print 'Creating extended stored procedure xp_perfsample'
  332. go
  333. sp_addextendedproc 'xp_perfsample','xpstar.dll'
  334. go
  335.  
  336. print 'Creating extended stored procedure xp_perfstart'
  337. go
  338. sp_addextendedproc 'xp_perfstart','xpstar.dll'
  339. go
  340.  
  341. print 'Creating extended stored procedure xp_perfend'
  342. go
  343. sp_addextendedproc 'xp_perfend','xpstar.dll'
  344. go
  345.  
  346. print 'Creating extended stored procedure xp_perfmonitor'
  347. go
  348. sp_addextendedproc 'xp_perfmonitor','xpstar.dll'
  349. go
  350.  
  351. print 'Creating extended stored procedure xp_servicecontrol'
  352. go
  353. sp_addextendedproc 'xp_servicecontrol','xpstar.dll'
  354. go
  355.  
  356. print 'Creating extended stored procedure xp_availablemedia'
  357. go
  358. sp_addextendedproc 'xp_availablemedia','xpstar.dll'
  359. go
  360.  
  361. print 'Creating extended stored procedure xp_dirtree'
  362. go
  363. sp_addextendedproc 'xp_dirtree','xpstar.dll'
  364. go
  365. grant exec on xp_dirtree to public
  366. go
  367.  
  368. print 'Creating extended stored procedure xp_eventlog'
  369. go
  370. sp_addextendedproc 'xp_eventlog','xpstar.dll'
  371. go
  372.  
  373. print 'Creating stored procedure sp_eventlog'
  374. go
  375. create proc sp_eventlog(
  376.     @p1        varchar(255) = NULL,
  377.     @p2        int = NULL,
  378.     @p3        int = NULL,
  379.     @p4        int = NULL )
  380. as
  381. begin
  382.  
  383.     if (not is_srvrolemember('securityadmin') = 1)
  384.     begin
  385.        raiserror(15003,-1,-1, 'securityadmin')
  386.        return (1)
  387.     end
  388.     exec xp_eventlog @p1,@p2,@p3,@p3
  389. end
  390. go
  391. grant execute on sp_eventlog to public
  392. go
  393.  
  394.  
  395. print 'Creating extended stored procedure xp_fixeddrives'
  396. go
  397. sp_addextendedproc 'xp_fixeddrives','xpstar.dll'
  398. go
  399. grant exec on xp_fixeddrives to public
  400. go
  401.  
  402. print 'Creating extended stored procedure xp_subdirs'
  403. go
  404. sp_addextendedproc 'xp_subdirs','xpstar.dll'
  405. go
  406.  
  407. print 'Creating extended stored procedure xp_sqltrace'
  408. go
  409. exec sp_addextendedproc 'xp_sqltrace', 'sqltrace.dll'
  410. go
  411.  
  412. print 'Creating extended stored procedure xp_getnetname'
  413. go
  414. sp_addextendedproc 'xp_getnetname','xpstar.dll'
  415. go
  416. grant execute on xp_getnetname to public
  417. go
  418.  
  419. print 'Creating extended stored procedure sp_IsMBCSLeadByte'
  420. go
  421. sp_addextendedproc 'sp_IsMBCSLeadByte','xpstar.dll'
  422. go
  423. grant execute on sp_IsMBCSLeadByte to public
  424. go
  425.  
  426. print 'Creating extended stored procedure sp_GetMBCSCharLen'
  427. go
  428. sp_addextendedproc 'sp_GetMBCSCharLen','xpstar.dll'
  429. go
  430. grant execute on sp_GetMBCSCharLen to public
  431. go
  432.  
  433. print 'Creating extended stored procedure xp_regdeletekey'
  434. go
  435. sp_addextendedproc 'xp_regdeletekey','xpstar.dll'
  436. go
  437.  
  438. print 'Creating extended stored procedure xp_check_query_results'
  439. go
  440. sp_addextendedproc 'xp_check_query_results','xpstar.dll'
  441. go
  442.  
  443. print 'Creating extended stored procedure xp_sqlagent_monitor'
  444. go
  445. sp_addextendedproc 'xp_sqlagent_monitor','xpstar.dll'
  446. go
  447.  
  448. print 'Creating extended stored procedure xp_sqlagent_notify'
  449. go
  450. sp_addextendedproc 'xp_sqlagent_notify','xpstar.dll'
  451. go
  452.  
  453. print 'Creating extended stored procedure xp_sqlagent_enum_jobs'
  454. go
  455. sp_addextendedproc 'xp_sqlagent_enum_jobs','xpstar.dll'
  456. go
  457.  
  458. print 'Creating extended stored procedure xp_sqlagent_is_starting'
  459. go
  460. sp_addextendedproc 'xp_sqlagent_is_starting','xpstar.dll'
  461. go
  462.  
  463. print 'Creating extended stored procedure xp_enum_activescriptengines'
  464. go
  465. sp_addextendedproc 'xp_enum_activescriptengines','xpstar.dll'
  466. go
  467. grant execute on xp_enum_activescriptengines to public
  468. go
  469.  
  470. print 'Creating extended stored procedure xp_fileexist'
  471. go
  472. sp_addextendedproc 'xp_fileexist','xpstar.dll'
  473. go
  474. grant execute on xp_fileexist to public
  475. go
  476.  
  477. print 'Creating extended stored procedure xp_ntsec_enumdomains'
  478. go
  479. sp_addextendedproc 'xp_ntsec_enumdomains','xpstar.dll'
  480. go
  481. grant execute on xp_ntsec_enumdomains to public
  482. go
  483.  
  484. print 'Creating extended stored procedure xp_ntsec_enumusers'
  485. go
  486. sp_addextendedproc 'xp_ntsec_enumusers','xpstar.dll'
  487. go
  488. grant execute on xp_ntsec_enumusers to public
  489. go
  490.  
  491. print 'Creating extended stored procedure xp_ntsec_enumgroups'
  492. go
  493. sp_addextendedproc 'xp_ntsec_enumgroups','xpstar.dll'
  494. go
  495. grant execute on xp_ntsec_enumgroups to public
  496. go
  497.  
  498. print 'Creating extended stored procedure xp_terminate_process'
  499. go
  500. sp_addextendedproc 'xp_terminate_process','xpstar.dll'
  501. go
  502.  
  503. print 'Creating extended stored procedure xp_msx_enlist'
  504. go
  505. sp_addextendedproc 'xp_msx_enlist','xpstar.dll'
  506. go
  507.  
  508. print 'Creating extended stored procedure xp_sqlmaint'
  509. go
  510. sp_addextendedproc 'xp_sqlmaint','xpstar.dll'
  511. go
  512.  
  513. print 'Creating extended stored procedure xp_get_mapi_profiles'
  514. go
  515. sp_addextendedproc 'xp_get_mapi_profiles','xpstar.dll'
  516. go
  517.  
  518. print 'Creating extended stored procedure xp_get_mapi_default_profile'
  519. go
  520. sp_addextendedproc 'xp_get_mapi_default_profile','xpstar.dll'
  521. go
  522.  
  523. print 'Creating extended stored procedure xp_test_mapi_profile'
  524. go
  525. sp_addextendedproc 'xp_test_mapi_profile','xpstar.dll'
  526. go
  527.  
  528. print 'Creating extended stored procedure xp_get_tape_devices'
  529. go
  530. sp_addextendedproc 'xp_get_tape_devices','xpstar.dll'
  531. go
  532.  
  533. print 'Creating extended stored procedure xp_enum_oledb_providers'
  534. go
  535. sp_addextendedproc 'xp_enum_oledb_providers','xpstar.dll'
  536. go
  537.  
  538. print 'Creating extended stored procedure xp_prop_oledb_provider'
  539. go
  540. sp_addextendedproc 'xp_prop_oledb_provider','xpstar.dll'
  541. go
  542.  
  543. print 'Creating extended stored procedure xp_sqlregister'
  544. go
  545. exec sp_addextendedproc 'xp_sqlregister', 'xpstar.dll'
  546. go
  547. grant exec on xp_sqlregister to public
  548. go
  549.  
  550. print 'Creating extended stored procedure xp_sqlinventory'
  551. go
  552. exec sp_addextendedproc 'xp_sqlinventory', 'xpstar.dll'
  553. go
  554.  
  555. print 'Creating stored procedure sp_sqlregister'
  556. go
  557. -- We create this thin wrapper proc so that we can make xp_sqlregister run at startup
  558. create proc sp_sqlregister as
  559. begin
  560.   exec master.dbo.xp_sqlregister
  561. end
  562. go
  563.  
  564. grant exec on sp_sqlregister to public
  565. go
  566.  
  567. print 'Creating extended stored procedure xp_writesqlinfo'
  568. go
  569. sp_addextendedproc 'xp_writesqlinfo','xpstar.dll'
  570. go
  571.  
  572. print 'Creating extended stored procedure xp_updateFTSSQLAccount'
  573. go
  574. sp_addextendedproc 'xp_updateFTSSQLAccount','xpstar.dll'
  575. go
  576.  
  577. print 'Creating extended stored procedure sp_MSgetversion'
  578. go
  579. sp_addextendedproc 'sp_MSgetversion','xpstar.dll'
  580. go
  581. grant execute on sp_MSgetversion to public
  582. go
  583.  
  584. /********************************************************************************************/
  585. /* enable sp_sqlregister for startup on SQL Server Standard, Enterprise and Desktop         */
  586. /********************************************************************************************/
  587. -- create table #t1(c1 varchar(20) not null, c2 int not null, c3 int not null)
  588. -- insert into #t1 exec master.dbo.sp_MSgetversion
  589. -- if exists (select * from #t1 where c3 = 2 or c3 = 3) exec sp_procoption 'sp_sqlregister', 'startup', 'true'
  590. -- go
  591. /********************************************************************************************/
  592.  
  593. /********************************************************************************************/
  594. exec sp_MS_upd_sysobj_category 2
  595. go
  596. /********************************************************************************************/
  597.  
  598. /********************************************************************************************/
  599. /* Save SQL Server config info to the registry */
  600. -- exec xp_writesqlinfo
  601. go
  602. /********************************************************************************************/
  603.  
  604. /********************************************************************************************/
  605. /* EOF XPSTAR.SQL                                                                           */
  606. /********************************************************************************************/
  607.