home *** CD-ROM | disk | FTP | other *** search
/ Enter 2001 April / EnterCD4.iso / Update / SQL Server SP3 / sql70sp3i.exe / X86 / UPGRADE / pre65to7.sql < prev    next >
Encoding:
Text File  |  1999-01-12  |  16.1 KB  |  441 lines

  1. /**********************************************************************/
  2. /* PRE65TO7.SQL                                                       */
  3. /*                                                                    */
  4. /* Modifies the tables created by PRE60TO7.SQL to make them look like */
  5. /* the 6.5 versions of those tables.                                  */
  6. /* Must be run after PRE60TO7.SQL.                                    */
  7. /*                                                                    */
  8. /* Copyright Microsoft, Inc. 1996, 1997.                              */
  9. /* All Rights Reserved.                                               */
  10. /*                                                                    */
  11. /* Use, duplication, or disclosure by the United States Government    */
  12. /* is subject to restrictions as set forth in subdivision (c) (1)(ii) */
  13. /* of the Rights in Technical Data and Computer Software clause       */
  14. /* at CFR 252.227-7013.                                               */
  15. /* Microsoft, Inc. One Microsoft Way, Redmond WA. 98052.              */
  16. /**********************************************************************/
  17.  
  18. PRINT '----------------------------------'
  19. PRINT 'Starting execution of PRE65TO7.SQL'
  20. PRINT '----------------------------------'
  21. go
  22.  
  23. USE msdb
  24. go
  25.  
  26. -- Check that we have not already been run (successfully)
  27. DECLARE @already_upgraded INT
  28. SET NOCOUNT ON
  29. SELECT @already_upgraded = 0
  30. EXECUTE master.dbo.xp_regread 'HKEY_LOCAL_MACHINE',
  31.                               'SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent',
  32.                               'UpgradedFrom6X',
  33.                                @already_upgraded OUTPUT,
  34.                               'no_output'
  35. IF (@already_upgraded > 0)
  36.   RAISERROR('The MSDB database has already been successfully upgraded to 7.0.', 20, 127) WITH LOG
  37. go
  38.  
  39. -- Allow updates to system catalogs so that we can fully manipulate our system objects
  40. EXECUTE master.dbo.sp_configure 'allow updates', 1
  41. go
  42. RECONFIGURE WITH OVERRIDE
  43. go
  44.  
  45. /**************************************************************/
  46. /* Turn 'System Object' marking ON                            */
  47. /**************************************************************/
  48. EXECUTE master.dbo.sp_MS_upd_sysobj_category 1
  49. go
  50.  
  51.  
  52. /**************************************************************/
  53. /* MSwebtasks                                                 */
  54. /**************************************************************/
  55.  
  56. PRINT ''
  57. PRINT 'Creating 6.5 table MSwebtasks...'
  58. go
  59.  
  60. -- Drop the 7.0 table
  61. IF (EXISTS (SELECT *
  62.             FROM msdb.dbo.sysobjects
  63.             WHERE (name = 'mswebtasks')
  64.               AND (type = 'U')))
  65.   DROP TABLE mswebtasks
  66. go
  67.  
  68. -- Create the 6.5 table (we'll rename it back to mswebtasks in MSDB6TO7.SQL)
  69. IF (EXISTS (SELECT *
  70.             FROM msdb.dbo.sysobjects
  71.             WHERE (name = 'MSwebtasks')
  72.               AND (type = 'U')))
  73.   DROP TABLE MSwebtasks
  74. go
  75.  
  76. CREATE TABLE MSwebtasks
  77. (
  78. procname   NVARCHAR(128) NOT NULL, -- Was VARCHAR(28) in 6.5
  79. outputfile NVARCHAR(255) NOT NULL, -- Was VARCHAR(255) in 6.5
  80. taskstat   BIT           NOT NULL,
  81. wparams    IMAGE         NULL
  82. )
  83. go
  84.  
  85. CREATE UNIQUE INDEX web_idxproc ON MSwebtasks(procname)
  86. go
  87.  
  88. /**************************************************************/
  89. /* SYSTASKS                                                   */
  90. /**************************************************************/
  91.  
  92. PRINT ''
  93. PRINT 'Modifying the 6.0 systasks table to become a 6.5 version...'
  94. go
  95.  
  96. IF (NOT EXISTS (SELECT *
  97.                 FROM msdb.dbo.syscolumns
  98.                 WHERE (id = OBJECT_ID('systasks'))
  99.                   AND (name = 'parameters')))
  100.   ALTER TABLE msdb.dbo.systasks ADD parameters TEXT NULL
  101.  
  102. IF (NOT EXISTS (SELECT *
  103.                 FROM msdb.dbo.syscolumns
  104.                 WHERE (id = OBJECT_ID('systasks'))
  105.                   AND (name = 'cmdexecsuccesscode')))
  106.   ALTER TABLE msdb.dbo.systasks ADD cmdexecsuccesscode INT  NULL
  107. go
  108.  
  109. /**************************************************************/
  110. /* SYSALERTS                                                  */
  111. /**************************************************************/
  112.  
  113. PRINT ''
  114. PRINT 'Modifying the 6.0 sysalerts table to become a 6.5 version...'
  115. go
  116.  
  117. IF (NOT EXISTS (SELECT *
  118.                 FROM msdb.dbo.syscolumns
  119.                 WHERE (id = OBJECT_ID('sysalerts'))
  120.                   AND (name = 'flags')))
  121.   ALTER TABLE msdb.dbo.sysalerts ADD flags INT NULL
  122. go
  123.  
  124. /**************************************************************/
  125. /* Create old 6.5 backup/restore tables then insert dummy     */
  126. /* rows into them so that Convert won't waste time importing  */
  127. /* data into them.                                            */
  128. /* NOTE: We'll delete these tables in MSDB6TO7.SQL.           */
  129. /**************************************************************/
  130.  
  131. IF (EXISTS (SELECT *
  132.             FROM msdb.dbo.sysobjects
  133.             WHERE (name = 'sysbackupdetail')
  134.               AND (type = 'U')))
  135.   DROP TABLE sysbackupdetail
  136. go
  137.  
  138. IF (EXISTS (SELECT *
  139.             FROM msdb.dbo.sysobjects
  140.             WHERE (name = 'sysbackuphistory')
  141.               AND (type = 'U')))
  142.   DROP TABLE sysbackuphistory
  143. go
  144.  
  145. IF (EXISTS (SELECT *
  146.             FROM msdb.dbo.sysobjects
  147.             WHERE (name = 'sysrestoredetail')
  148.               AND (type = 'U')))
  149.   DROP TABLE sysrestoredetail
  150. go
  151.  
  152. IF (EXISTS (SELECT *
  153.             FROM msdb.dbo.sysobjects
  154.             WHERE (name = 'sysrestorehistory')
  155.               AND (type = 'U')))
  156.   DROP TABLE sysrestorehistory
  157. go
  158.  
  159. /**************************************************************/
  160. /* SYSBACKUPHISTORY                                           */
  161. /**************************************************************/
  162.  
  163. PRINT ''
  164. PRINT 'Creating [temporary] 6.5 table sysbackuphistory...'
  165.  
  166. CREATE TABLE sysbackuphistory
  167. (
  168. backup_id         INT             IDENTITY(1,1), -- Primary key
  169. CONSTRAINT        pk_backup_id    PRIMARY KEY CLUSTERED (backup_id),  -- with clustered index
  170. id_number         SMALLINT        NOT NULL,      -- Position of the backup on the volume
  171. backup_type       SMALLINT        NOT NULL,      -- Database(1), Transaction(2), Table(3)
  172. database_name     VARCHAR(64)     NOT NULL,      -- Database name
  173. table_owner       VARCHAR(64)     NULL,          -- Single Table Owner
  174. table_name        VARCHAR(64)     NULL,          -- Table name for table backups
  175. operator_name     CHAR(30)        NOT NULL,      -- Name of person who performed the backup
  176. backup_start      DATETIME        NOT NULL,      -- Date and time of the oldest committed transaction
  177. backup_finish     DATETIME        NOT NULL,      -- Date and time of the last committed transaction
  178. server_sort       SMALLINT        NOT NULL,      -- Database server sort order
  179. server_code_page  SMALLINT        NOT NULL,      -- Database server code page
  180. striped_backup    SMALLINT        NOT NULL,      -- Striped backup(1), non-striped backup(0)
  181. stripe_count      SMALLINT        NOT NULL,      -- Number of devices in the stripeset
  182. stripe_set_name   VARCHAR(64)     NULL,          -- Stripeset Name
  183. total_backup_size INT             NOT NULL,      -- Total size of backup in bytes (not pages)
  184. current_sequence  CHAR(14)        NOT NULL,      -- Currentsequence number
  185. new_sequence      CHAR(14)        NULL           -- New sequence number
  186. )
  187. go
  188.  
  189. /**************************************************************/
  190. /* SYSBACKUPDETAIL                                            */
  191. /**************************************************************/
  192.  
  193. PRINT ''
  194. PRINT 'Creating [temporary] 6.5 table sysbackupdetail...'
  195.  
  196. CREATE TABLE sysbackupdetail
  197. (
  198. backup_id       INT             NOT NULL,    -- Foreign key
  199. CONSTRAINT      fk_backup_id    FOREIGN KEY (backup_id)
  200. REFERENCES      sysbackuphistory(backup_id), -- to sysbackuphistory
  201. device_type     SMALLINT        NOT NULL,    -- Disk(2), Floppy(3), Tape(5) or Pipe(6)
  202. device_name     VARCHAR(255)    NOT NULL,    -- Device or UNC Name
  203. backup_size     INT             NOT NULL,    -- Size of backup on this device in bytes (not pages)
  204. volume_name     VARCHAR(6)      NULL,        -- Volume label
  205. expiration_date DATETIME        NULL         -- Expiration date for the volume
  206. )
  207. go
  208.  
  209. /**************************************************************/
  210. /* SYSRESTOREHISTORY                                          */
  211. /**************************************************************/
  212.  
  213. PRINT ''
  214. PRINT 'Creating [temporary] 6.5 table sysrestorehistory...'
  215.  
  216. CREATE TABLE sysrestorehistory
  217. (
  218. restore_id           INT           IDENTITY(1,1)  -- Primary key
  219. CONSTRAINT           pk_restore_id PRIMARY KEY CLUSTERED (restore_id),      -- with clustered index
  220. id_number            SMALLINT      NOT NULL,      -- Position of the backup on the volume
  221. backup_type          SMALLINT      NOT NULL,      -- Database(1), Transaction(2), Table(3)
  222. source_database_name VARCHAR(64)   NOT NULL,      -- Source (original) database name
  223. new_database_name    VARCHAR(64)   NOT NULL,      -- New (destination) database name
  224. table_owner          VARCHAR(64)   NULL,          -- Single Table Owner
  225. table_name           VARCHAR(64)   NULL,          -- Table name for table backups
  226. operator_name        CHAR(30)      NOT NULL,      -- Name of person who performed the backup
  227. backup_start         DATETIME      NOT NULL,      -- Date and time of the oldest committed transaction
  228. backup_finish        DATETIME      NOT NULL,      -- Date and time of the last committed transaction
  229. server_sort          SMALLINT      NOT NULL,      -- Database server sort order
  230. server_code_page     SMALLINT      NOT NULL,      -- Database server code page
  231. striped_backup       SMALLINT      NOT NULL,      -- Striped backup(1), non-striped backup(0)
  232. stripe_count         SMALLINT      NOT NULL,      -- Number of devices in the stripeset
  233. stripe_set_name      VARCHAR(64)   NULL,          -- Stripeset Name
  234. total_backup_size    INT           NOT NULL,      -- Total size of backup in bytes (not pages)
  235. current_sequence     CHAR(14)      NOT NULL,      -- Currentsequence number
  236. new_sequence         CHAR(14)      NULL,          -- New sequence number
  237. restore_date         DATETIME      NOT NULL       -- Date/time restore performed
  238. )
  239. go
  240.  
  241. /**************************************************************/
  242. /* SYSRESTOREDETAIL                                           */
  243. /**************************************************************/
  244.  
  245. PRINT ''
  246. PRINT 'Creating [temporary] 6.5 table sysrestoredetail...'
  247.  
  248. CREATE TABLE sysrestoredetail
  249. (
  250. restore_id      INT             NOT NULL       -- Foreign key
  251. CONSTRAINT      fk_restore_id   FOREIGN KEY (restore_id)
  252. REFERENCES      sysrestorehistory(restore_id), -- to sysrestorehistory
  253. device_type     SMALLINT        NOT NULL,      -- Disk(2), Floppy(3), Tape(5) or Pipe(6)
  254. device_name     VARCHAR(255)    NOT NULL,      -- Device or UNC Name
  255. backup_size     INT             NOT NULL,      -- Size of backup on this device in bytes (not pages)
  256. volume_name     VARCHAR(6)      NULL,          -- Volume label
  257. expiration_date DATETIME        NULL           -- Expiration date for the volume
  258. )
  259. go
  260.  
  261. /**************************************************************/
  262. /* SYSVOLUMELABEL                                             */
  263. /**************************************************************/
  264.  
  265. PRINT ''
  266. PRINT 'Creating [temporary] 6.5 table sysvolumelabel...'
  267.  
  268. IF (EXISTS (SELECT *
  269.             FROM msdb.dbo.sysobjects
  270.             WHERE (name = 'sysvolumelabel')
  271.               AND (type = 'U')))
  272.   DROP TABLE sysvolumelabel
  273. go
  274.  
  275. CREATE TABLE sysvolumelabel
  276. (
  277. label_prefix  CHAR(2) NOT NULL,
  278. label_counter INT     NOT NULL
  279. )
  280. go
  281.  
  282. /**************************************************************/
  283. /* SYSSERVERMESSAGES                                          */
  284. /**************************************************************/
  285.  
  286. PRINT 'Creating [temporary] 6.5 table sysservermessages...'
  287. go
  288.  
  289. IF EXISTS (SELECT * 
  290.            FROM msdb.dbo.sysobjects 
  291.            WHERE (type = 'U')
  292.              AND (name = 'sysservermessages')) 
  293.   DROP TABLE sysservermessages
  294. go
  295.  
  296. CREATE TABLE sysservermessages 
  297. (
  298. error       INT          NOT NULL,
  299. severity    SMALLINT     NOT NULL,
  300. dlevel      SMALLINT     NOT NULL,
  301. description VARCHAR(255) NOT NULL,
  302. language    VARCHAR(30)  NOT NULL
  303. )
  304. go
  305.  
  306. /**************************************************************/
  307. /* Insert dummy rows...                                       */
  308. /**************************************************************/
  309.  
  310. SET IDENTITY_INSERT msdb.dbo.sysbackuphistory ON
  311. INSERT INTO msdb.dbo.sysbackuphistory
  312.        (backup_id,
  313.         id_number,
  314.         backup_type,
  315.         database_name,
  316.         table_owner,
  317.         table_name,
  318.         operator_name,
  319.         backup_start,
  320.         backup_finish,
  321.         server_sort,
  322.         server_code_page,
  323.         striped_backup,
  324.         stripe_count,
  325.         stripe_set_name,
  326.         total_backup_size,
  327.         current_sequence,
  328.         new_sequence)
  329. VALUES (0,         -- backup_id
  330.         0,         -- id_number
  331.         0,         -- backup_type
  332.        'master',   -- database_name
  333.        'dbo',      -- table_owner
  334.        'dummy',    -- table_name
  335.        'dbo',      -- operator_name
  336.         GETDATE(), -- backup_start
  337.         GETDATE(), -- backup_finish
  338.         0,         -- server_sort
  339.         0,         -- server_code_page
  340.         0,         -- striped_backup
  341.         0,         -- stripe_count
  342.         NULL,      -- stripe_set_name
  343.         0,         -- total_backup_size
  344.        '0',        -- current_sequence
  345.         NULL)      -- new_sequence
  346. SET IDENTITY_INSERT msdb.dbo.sysbackuphistory OFF
  347.  
  348. INSERT INTO msdb.dbo.sysbackupdetail
  349. VALUES (0,     -- backup_id
  350.         0,     -- device_type
  351.        'null', -- device_name
  352.         0,     -- backup_size
  353.         NULL,  -- volume_name
  354.         NULL)  -- expiration_date
  355.  
  356. SET IDENTITY_INSERT msdb.dbo.sysrestorehistory ON
  357. INSERT INTO msdb.dbo.sysrestorehistory
  358.        (restore_id,
  359.         id_number,
  360.         backup_type,
  361.         source_database_name,
  362.         new_database_name,
  363.         table_owner,
  364.         table_name,
  365.         operator_name,
  366.         backup_start,
  367.         backup_finish,
  368.         server_sort,
  369.         server_code_page,
  370.         striped_backup,
  371.         stripe_count,
  372.         stripe_set_name,
  373.         total_backup_size,
  374.         current_sequence,
  375.         new_sequence,
  376.         restore_date)
  377. VALUES (0,         -- restore_id
  378.         0,         -- id_number
  379.         0,         -- backup_type
  380.        'master',   -- source_database_name
  381.        'master',   -- new_database_name
  382.        'dbo',      -- table_owner
  383.        'dummy',    -- table_name
  384.        'dbo',      -- operator_name
  385.         GETDATE(), -- backup_start
  386.         GETDATE(), -- backup_finish
  387.         0,         -- server_sort
  388.         0,         -- server_code_page
  389.         0,         -- striped_backup
  390.         0,         -- stripe_count
  391.         NULL,      -- stripe_set_name
  392.         0,         -- total_backup_size
  393.        '0',        -- current_sequence
  394.         NULL,      -- new_sequence
  395.         GETDATE()) -- restore_date
  396. SET IDENTITY_INSERT msdb.dbo.sysrestorehistory OFF
  397.  
  398. INSERT INTO msdb.dbo.sysrestoredetail
  399. VALUES (0,     -- restore_id
  400.         0,     -- device_type
  401.        'null', -- device_name
  402.         0,     -- backup_size
  403.         NULL,  -- volume_name
  404.         NULL)  -- expiration_date
  405. go
  406.  
  407. INSERT INTO msdb.dbo.sysvolumelabel 
  408.        (label_prefix, label_counter) 
  409. VALUES ('SS', 0)
  410. go
  411.  
  412. INSERT INTO msdb.dbo.sysservermessages
  413.        (error,
  414.         severity,
  415.         dlevel,
  416.         description,
  417.         language)
  418. VALUES (911,
  419.         10,
  420.         0,
  421.        'dummy',
  422.        'dummy')
  423. go
  424.  
  425. EXECUTE master.dbo.sp_configure 'allow updates', 0
  426. go
  427. RECONFIGURE WITH OVERRIDE
  428. go
  429.  
  430. /**************************************************************/
  431. /* Turn 'System Object' marking OFF                           */
  432. /**************************************************************/
  433. EXECUTE master.dbo.sp_MS_upd_sysobj_category 2
  434. go
  435.  
  436. PRINT ''
  437. PRINT '----------------------------------'
  438. PRINT 'Execution of PRE65TO7.SQL complete'
  439. PRINT '----------------------------------'
  440. go
  441.