Principales respuestas
Copia de objetos de un server A a un server B (SQL Server 2000)

Pregunta
-
Estimados.
Les comento un problema, para ver si me pueden dar algunas alternativas de solución, resulta que debo programar de forma diaria un DTS que me permita traer los objetos de un DataBase fuera de nuestra oficina, el tema es que logro traer tablas y datos, al momento de traer vistas y procemiento arroja problemas "extraños", como que el nombre no es valido, tipico error cuando se ejecuta algo y no existe, mis dudas van desde la version del SQL hasta el usuario que tengo para la conexion, ademas de esta copia de archivos no debo copiar los usuarios que esten en esta DataBase externa, ya que, perderia los usuarios que tengo en la DataBase interna (destino de los objetos y datos)
Desde ya muchas gracias por su ayudamiércoles, 17 de febrero de 2010 13:01
Respuestas
-
Hola.Esos errores que recibes al crear las vistas pueden ser debidos a:- Existen vistas obsoletas cuya definición ya no es válida (porque hayan sido modificados los objetos subyacentes).- Existen vistas que referencian otras vistas y el orden de creación no es tenido en cuenta (http://support.microsoft.com/kb/291780).Lo más probable es que sea lo primer. Para resolverlos, verifica que las vistas que importas son las adecuadas y funcionan y que se importan en el orden correcto. Además, ten en cuenta que estamos hablando de vistas, con lo que no dejan de ser scripts. Siempre puedes preparar tú mismo ese script en lugar de importar el conjunto de todos los objetos.Si no das con ello, nos dices.
Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator miércoles, 17 de febrero de 2010 13:29
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 12 de marzo de 2010 18:26
miércoles, 17 de febrero de 2010 13:29Moderador -
Hola.Te paso un script obtenido de http://www.karaszi.com/SQLServer/info_generate_script.asp. Usa SQLDMO para generar scripts (con una tarea de script):
Dim oSS As SQLDMO.SQLServer Dim oDb As SQLDMO.Database Dim oT As SQLDMO.Transfer Dim sS As String Sub Script() Set oSS = New SQLDMO.SQLServer Set oT = New SQLDMO.Transfer oSS.Connect "server", "login", "password" 'Connect to the server Set oDb = oSS.Databases("pubs") 'Use a DB oT.CopyAllTables = True oDb.ScriptTransfer oT, SQLDMOXfrFile_SingleFile, "C:\pubs.sql"
Este otro link http://support.microsoft.com/?scid=kb;en-us;152801&x=12&y=13 contiene información sobre cómo crear procedimientos almacenados que generen scripts, también con SQLDMO.Con PowerShell es bastante más fácil, pero no sé si es posible llamarlo desde un DTS. Te paso el link de todos modos: http://blogs.msdn.com/buckwoody/archive/2009/07/02/powershell-and-sql-server-script-all-tables.aspx.En cualquier caso, tendrías que generar el script a una ruta y luego ejecutarlo en la base de datos de destino.
Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator miércoles, 17 de febrero de 2010 14:56
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 12 de marzo de 2010 18:26
miércoles, 17 de febrero de 2010 14:55Moderador
Todas las respuestas
-
Hola.Esos errores que recibes al crear las vistas pueden ser debidos a:- Existen vistas obsoletas cuya definición ya no es válida (porque hayan sido modificados los objetos subyacentes).- Existen vistas que referencian otras vistas y el orden de creación no es tenido en cuenta (http://support.microsoft.com/kb/291780).Lo más probable es que sea lo primer. Para resolverlos, verifica que las vistas que importas son las adecuadas y funcionan y que se importan en el orden correcto. Además, ten en cuenta que estamos hablando de vistas, con lo que no dejan de ser scripts. Siempre puedes preparar tú mismo ese script en lugar de importar el conjunto de todos los objetos.Si no das con ello, nos dices.
Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator miércoles, 17 de febrero de 2010 13:29
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 12 de marzo de 2010 18:26
miércoles, 17 de febrero de 2010 13:29Moderador -
Gracias, por tu respuesta, tan rapida, pero tengo otra consulta, pensado en lo ultimo que dices, existe alguna forma por script que me permita exportar las vistas y sp (ya que son solo script) y luego ejecutarlo en el server de destino, todo esto por DTS
miércoles, 17 de febrero de 2010 13:48 -
Puedes hacerlo fácilmente mediante un script de PowerShell. Si quieres programarlo podrías hacerlo también a través de un job o una tarea programada de Windows.
En http://www.simple-talk.com/sql/sql-tools/using-powershell-to-generate-table-creation-scripts/ puedes ver un ejemplo de generar scripts de las tablas; cambiarlo para que los haga de vistas o procedimientos es sencillo.
Vaya, me acabo de dar cuenta que hablas de SQL Server 2000, con lo cual PowerShell no es válido...- Editado Carlos Sacristan miércoles, 17 de febrero de 2010 14:43 Powershell no es para SQL 2000
miércoles, 17 de febrero de 2010 14:42 -
Hola.Te paso un script obtenido de http://www.karaszi.com/SQLServer/info_generate_script.asp. Usa SQLDMO para generar scripts (con una tarea de script):
Dim oSS As SQLDMO.SQLServer Dim oDb As SQLDMO.Database Dim oT As SQLDMO.Transfer Dim sS As String Sub Script() Set oSS = New SQLDMO.SQLServer Set oT = New SQLDMO.Transfer oSS.Connect "server", "login", "password" 'Connect to the server Set oDb = oSS.Databases("pubs") 'Use a DB oT.CopyAllTables = True oDb.ScriptTransfer oT, SQLDMOXfrFile_SingleFile, "C:\pubs.sql"
Este otro link http://support.microsoft.com/?scid=kb;en-us;152801&x=12&y=13 contiene información sobre cómo crear procedimientos almacenados que generen scripts, también con SQLDMO.Con PowerShell es bastante más fácil, pero no sé si es posible llamarlo desde un DTS. Te paso el link de todos modos: http://blogs.msdn.com/buckwoody/archive/2009/07/02/powershell-and-sql-server-script-all-tables.aspx.En cualquier caso, tendrías que generar el script a una ruta y luego ejecutarlo en la base de datos de destino.
Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)- Propuesto como respuesta Alberto López Grande (qwalgrande)Moderator miércoles, 17 de febrero de 2010 14:56
- Marcado como respuesta Alberto López Grande (qwalgrande)Moderator viernes, 12 de marzo de 2010 18:26
miércoles, 17 de febrero de 2010 14:55Moderador -
Es posible que existan estos problemas por las versiones del SQL Server, te comento esto porque en mi Server tengo SQL Server Standar Edition con SP3 y en Server externo tiene Personal Edition con SP4, esto influye en algo, muchas gracias desde ya por todas tus respuestas.
miércoles, 17 de febrero de 2010 21:19 -
Hola.No guarda relación con las versiones ni ediciones (del SP1 en adelante).
Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)jueves, 18 de febrero de 2010 13:33Moderador