sql-server - vinculado - restaurar base de datos sql server 2012 a 2008
Upsizing una base de datos de acceso dividida (4)
Necesito convertir una base de datos de acceso dividida, es decir, una que esté actualmente dividida entre archivos tow mdb, un front-end y un back-end. Veo muchas páginas web que, en esencia, dicen: "ejecuta el Asistente de Upsizing". Mi primera pregunta, muy básica:
¿Debería ejecutar este asistente en mi front-end mdb o mi back-end mdb?
Supongo que no quiero vincular el servidor principal mdb -> backend mdb -> sql. ¿Debo ejecutar el asistente en el backend mdb, y luego en el frontend mdb cambiar las tablas vinculadas para apuntar al servidor sql en lugar de al backend mdb? Si es así, ¿cómo se hace? Cuando hago clic con el botón derecho y voy al Administrador de tablas vinculadas para ver una tabla en la interfaz (vinculada al backend md), parece que solo me permite elegir un nuevo archivo mdb.
Como una cuestión de paranoia estándar, solo haría una copia de seguridad de los archivos existentes y ejecutaría el Asistente de Upsizing en la interfaz. Si ocurre algo indeseable, solo revertir los cambios sobrescribiendo con la copia de seguridad.
Personalmente, he descubierto que el asistente de conversión hace un mal trabajo al determinar los tipos de datos correctos. Yo mismo crearía las tablas en el servidor SQL usando los tipos de datos que necesito, luego moveré los datos a las tablas existentes desde Access. de lo contrario, se le pegarán los datos de texto cuando podría usar varchar o float cuando realmente necesite decimal.
Una vez que se hayan movido los datos, eliminaría las tablas de acceso y el enlace a las tablas de SQL Server.
No haga nada sin tener primero una copia de seguridad de la base de datos.
Estoy de acuerdo con su primera suposición: querrá ejecutar el asistente en el back-end mdb.
Una vez que esté en SQL Server, también como lo ha adivinado, querrá vincular la interfaz para que funcione con los datos de SQL Server. Una forma de hacerlo es configurar una fuente de datos ODBC para su nueva base de datos de SQL Server y seleccionarla en el Administrador de tablas vinculadas.
- Abra el acceso directo Fuentes de datos (ODBC): en XP Pro, esto se encuentra en el Panel de control en Herramientas administrativas. (Si no lo ve, probablemente no tenga permiso para crear una fuente de datos, por lo que tendrá que trabajar con la gente de su red para hacerlo). Esto abrirá el Administrador de ODBC.
- En la pestaña Archivo DSN, haga clic en Agregar ... Verá una lista de controladores disponibles. Seleccione SQL Server y haga clic en Siguiente. (Si la interfaz solo se usa en su máquina, puede crear un DSN del sistema en su lugar).
- Encuentre una ubicación común y nombre su fuente de datos.
- Haga clic en Siguiente y finalice. Esto configurará la primera parte de la fuente de datos y abrirá el asistente de fuente de datos de SQL Server.
- Nombre la fuente de datos y seleccione el servidor en el que ha puesto la base de datos de back ups.
- Cambie el resto de la configuración según sea necesario (es posible que no necesite cambiar mucho, pero el alcance de esos cambios puede requerir una segunda pregunta) y haga clic hasta Finalizar.
Una vez que haya configurado la fuente de datos, entonces Obtener datos externos le dará la opción de seleccionarla como su fuente. (En 2007, puede acceder desde la cinta de datos externos. Las fuentes de datos ODBC están disponibles en Más.)
Para ampliar un poco más en función de las preguntas de seguimiento de Matt:
Cómo lo haces es una elección de diseño. Recomiendo que se actualice el mdb de back-end porque eso le permitiría conservar los formularios que tenía en Access; Creo que es menos una transición si sus datos están en SQL Server.
Antes de su conversión, sus tablas estaban vinculadas a la base de datos back-end, y el Administrador de tablas vinculadas mostraba los enlaces. Después de configurar la fuente de datos ODBC y vincular esas tablas, se mostrará ese enlace. Verá los enlaces de dos formas diferentes porque en realidad son diferentes tipos de enlaces (Acceso vs. ODBC), aunque los enlaces pueden tener el mismo aspecto en su mdb front-end.
Actualice la interfaz e importará las tablas de back-end antes de que se actualice. Hice esto hace una semana con un resultado exitoso.
Sin embargo, cualquier consulta que use -1 en lugar de Sí fallará. Cualquier tabla completa que se elimine en las tablas sin una clave principal fallará, y obtendrás un comportamiento diferente del que usarás simplemente mediante el uso de una consulta SQL de transferencia para truncar la tabla. El trunc eliminará todas las filas, la versión de Access puede dejar un espacio en blanco.
También deberá incluir dbSeeChanges en cualquier lugar donde tenga una apertura de conjunto de registros en una tabla con un tipo de datos de columna de autonumber. SQL los cambia a tipos de datos Identity, luego se queja antes de intentar abrir la tabla. Buena suerte.