viernes, 27 de diciembre de 2013

Crear scripts en SQL server 2005 con compatibilidad para SQL Server 2000

Algunas veces creamos scrips en SQL Server 2005 y luego queremos ejecutarlos en SQL SERVER 2000 y no funcionan, hay un wizard que permite adaptarlos.

Los SELECT, INSERT,  UPDATES Y DELETES no tienen problemas de compatibilidad.
La compatibilidad con SQL SERVER 2000 - SQL SERVER 2005  sólo da problemas a la hora de generar objetos del tipo Tabla, Procedimientos almacenados, Vistas, etc.

En primer lugar crearemos en SQL 2005 el script necesario para crear uno de los objetos previamente citados, por ejemplo una tabla.

CREATE TABLE [PROPIETARIO].[tbTabla](
      [strCodigoTabla] [char](7) NOT NULL,
      [strCampo1] [char](4) NOT NULL,
      [strCampo2] [char](9) NOT NULL,
      [strCampo3] [char](7) NOT NULL,
      [strCampo4] [char](7) NOT NULL,
      [strCampo5] [char](9) NOT NULL,
      [strCampo6] [char](7) NOT NULL,
      [strCampo7] [char](7) NOT NULL,
    [intCampo8] [int] NOT NULL,
 CONSTRAINT [PK_tbTabla_4__16] PRIMARY KEY CLUSTERED
(
      [strCodigoTabla] ASC,
      [strCampo1] ASC,
      [strCampo2] ASC,
      [strCampo6] ASC,
      [strCampo7] ASC
     
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]


Creada la tabla, sobre la Base de Datos donde se ha creado hacemos:

Abrir wizard para compatibilizar versiones de SQL SERVER

Lo que nos abre un Wizard.

Wizard compatibilización versiones SQL SERVER

Elegimos la base de datos con la que estamos trabajando

Compatibilizar versiones SQL SERVER

Y elegimos SQL Server 2000

Paso de SQL Server 2005 a SQL Server 2000

Seleccionamos los objetos que vamos a traducir (en nuestro caso una tabla), pero pueden ser vistas y procedimientos almacenados también.

Objetos SQL Server a traducir


Seleccionamos el objeto u objetos creados y pulsamos next.

Objetos SQL Server 2005 a traducir

Y pulsamos finish, nos sale la pantalla de confirmación

traducción de SQL Server 2005 a SQL Server 2000

Y el nuevo script, que copiamos y sustituimos por el generado en SQL 2005

USE [dbDesarrollo1502]
GO
/****** Object:  Table [PROPIETARIO].[tbTabla]    Script Date: 07/09/2012 13:49:08 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [PROPIETARIO].[tbTabla](
      [strCodigoTabla] [char](7) NOT NULL,
      [strCampo1] [char](4) NOT NULL,
      [strCampo2] [char](9) NOT NULL,
      [strCampo3] [char](7) NOT NULL,
      [strCampo4] [char](7) NOT NULL,
      [strCampo5] [char](9) NOT NULL,
      [strCampo6] [char](7) NOT NULL,
      [strCampo7] [char](7) NOT NULL,
    [intCampo8] [int] NOT NULL,
 CONSTRAINT [PK_tbTabla_4__16] PRIMARY KEY CLUSTERED
(
      [strCodigoTabla] ASC,
      [strCampo1] ASC,
      [strCampo2] ASC,
      [strCampo6] ASC,
      [strCampo7] ASC
) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  ForeignKey [FK_tbTabla_15]    Script Date: 07/09/2012 13:49:09 ******/
ALTER TABLE [PROPIETARIO].[tbTabla]  WITH NOCHECK ADD  CONSTRAINT [FK_tbTabla_1__15] FOREIGN KEY([strCodigoTabla])
REFERENCES [PROPIETARIO].[tbTabla2] ([strCodigoTabla2])
GO
ALTER TABLE [PROPIETARIO].[tbTabla] CHECK CONSTRAINT [FK_tbTabla_1__15]
GO

Este nuevo script tiene compatibilidad con SQL 2000.

Finalmente ejecutaremos el script generado sobre la base de datos de SQL 2000 del servidor SQL 2000  para verificar que el script no da errores.

No lo he probado en SQL SERVER 2008 ni SQL SERVER 2012 pero seguramente tengan un wizard similar para compatibilizar versiones.


No hay comentarios:

Publicar un comentario