domingo, abril 27, 2008

Problemas al abrir Diagrama de Base de Datos en SQL 2005

Este tema lo tenia en el tintero desde el año pasado, sucede que me enviaron para analizar una Base de Datos en SQL 2005, al momento de adjuntarla todo iba bien, pero cuando me disponia a observar el diseño de la Base de Datos en el Diagrama me mostro el siguiente mensaje:

"Database diagram support objects cannot be installed because this database does not have a valid owner. To continue, first use the Files page of the Database Properties dialog box or the ALTER AUTHORIZATION statement to set the database owner to a valid login, then add the database diagram support objects."

Esto sucede principalmente porque el propietario (owner) quien creo o diseño la BD no coincide con quien esta restaurandola (yo), recuerden que me enviaron esta BD, asi que manos a la obra:

Este script es muy util:

EXEC sp_dbcmptlevel 'miBaseDatos', '90';
go
ALTER AUTHORIZATION ON DATABASE::miBaseDatos TO "NombrePC/Usuario"
go
use [
miBaseDatos]
go
EXECUTE AS USER = N'dbo' REVERT
go

Que es lo que realmente hace este script, primero es modificar la configuracion para que la base de Datos sea compatible con la Versión de SQL en el que se ejecuta, en este caso el valor es 90 que hace referencia al SQL 2005, la siguiente linea es la que realmente hace el cambio de propietario de "miBaseDatos" y le asigna al usuario que esta logueado en el sistema, quien es un inicio de sesión válido en la instancia de SQL Server que puede estar conformado por el nombre de la PC y seguido del nombre del usuario de la PC (no olviden las comillas).

Con esto tienen solucionado el problema, pero tambien tienen la siguiente alternativa, pero esta solo soluciona el nivel de compatibilidad de la BD, siguiendo estos pasos:

1. Click derecho en la BD y seleccionar Propiedades
2. y en la Pestaña Opciones seleccionar el nivel de compatibilidad (Compatibility level) acorde a la versión SQL que se ejecuta SQL 2005 (90) / SQL 2000 (80)

Fuentes:
- ALTER AUTHORIZATION (Transact-SQL)
- Database Diagrams Problem

No hay comentarios.: