Como pasar datos de un servidor remoto a otro

07/12/2007 - 17:02 por Alr | Informe spam
Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003 R2
server, ambos con sus service pack respectivo), los dos tienen instalado
Sql2000 Standard Edition
Service Pack 4, los dos servidores estan en diferentes cuidades, en uno de
ellos se corre un sistema de pedidos. El caso es que me piden que la
informacion de este servidor
se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra la
administracion), ya que quieren ver los datos lo mas en linea que se pueda,
sin embargo me comentan
tambien que han tenido no muy buenas experiencias con el replicador de Sql,
por lo que me pidieron que usara otra cosa (aparte que nunca he implementado
un replicador), he
pensado en servidores vinculados (ya que en la cuidad donde llegaran los
datos, existe algo que hace las veces de una ip publica), de forma que si
tengo coneccion de un lado
hacia el otro (pero no hacia ambos lados).
Mi pregunta es, hay alguna forma de implementar esta situacion de forma mas
o menos simple ?
Ya que lo que se me ocurre son procedimientos almacenados que hagan las
veces de triggers (es decir que estos SP pasen los datos de un servidor al
otro), y que se ejecuten cada
digamos media hora o 1 hora, pero esto significaria tener que hacer a mano
todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
respectivos campos, Ejemplo:

DECLARE @Status char(1) -- <-- Ejemplo
DECLARE @Campo1 int -- etc, etc.

/* Agrega/Cambia/Borra registros en el servidor remoto segun el campo Status
del servidor Local */
DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE ISNULL(STATUS,
'A') <> 'P' -- 'P' de Procesado
OPEN FLE_ABC
FETCH NEXT FROM FLE_ABC INTO [@Variables]
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@Status = 'A') OR (@Status = 'B') OR (@Status = 'C') --
'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten procesados
(Status<>'P').
BEGIN
IF (@Status = 'A') OR (@Status = 'C')
BEGIN
IF EXISTS(SELECT * FROM
[ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] =
[@Variable]) -- Si ya existe el registro en el servidor remoto, solo lo
actualiza
BEGIN
UPDATE [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
SET [Campo1]=[@Variable1], [Campo2]=[@Variable2]
WHERE [Campo] = [@Variable] -- Y asi con todos lo campos de la tabla
END
ELSE -- Si no existe el registro en el
servidor remoto, lo agrega
BEGIN
INSERT INTO
[ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
VALUES([@Variable1], [@Variable2])
END
END
ELSE
BEGIN
DELETE FROM [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
WHERE [Campo] = [@Variable]
END
END
FETCH NEXT FROM FLE_ABC INTO [@Variables]
END
CLOSE FLE_ABC
DEALLOCATE FLE_ABC

Despues de esto se ejecutaria otro procedimiento almacenado (u otro proceso
dentro de este mismo SP) que ponga el campo Status = 'P', segun localize o
no los registros en la
Db del servidor remoto.


Esto como dije significa que debo hacer algo asi, para cada tabla (son como
50), aparte de agregar un campo de status a cada tabla.

No existe algo en Sql, para dar de alta/modificar el registro completo sin
tener que entrar en detalle de especificar cada campo (como es el caso del
insert, o update) ?

Alguien tiene una idea sin tener que usar replicacion (ya que esa fue la
sugerencia que me hicieron[no usar replicacion]) ?
Si quieren mas informacion con gusto la proporciono.
Espero haber explicado bien la problematica.

Cualquier idea es bienvenida.

Gracias de antemano.

Saludos.

Preguntas similare

Leer las respuestas

#1 Juan Carlos Inestroza Lozano
07/12/2007 - 19:35 | Informe spam
Hola

Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
estos servidores y uses SQL TASk para poder empotrar las clausulas que no
permitan datos repetidas y mantegas la integridad de la BD, el escenario de
agentes de replicacion es el mas recomendado con el modelo publicados y
suscriptor!!


pero debes d etener uan buena arquitectura de comunicaciones!!!

Saludos Cordiales.


Juan Carlos Inestroza Lozano.

"Alr'" wrote:

Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003 R2
server, ambos con sus service pack respectivo), los dos tienen instalado
Sql2000 Standard Edition
Service Pack 4, los dos servidores estan en diferentes cuidades, en uno de
ellos se corre un sistema de pedidos. El caso es que me piden que la
informacion de este servidor
se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra la
administracion), ya que quieren ver los datos lo mas en linea que se pueda,
sin embargo me comentan
tambien que han tenido no muy buenas experiencias con el replicador de Sql,
por lo que me pidieron que usara otra cosa (aparte que nunca he implementado
un replicador), he
pensado en servidores vinculados (ya que en la cuidad donde llegaran los
datos, existe algo que hace las veces de una ip publica), de forma que si
tengo coneccion de un lado
hacia el otro (pero no hacia ambos lados).
Mi pregunta es, hay alguna forma de implementar esta situacion de forma mas
o menos simple ?
Ya que lo que se me ocurre son procedimientos almacenados que hagan las
veces de triggers (es decir que estos SP pasen los datos de un servidor al
otro), y que se ejecuten cada
digamos media hora o 1 hora, pero esto significaria tener que hacer a mano
todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
respectivos campos, Ejemplo:

DECLARE @Status char(1) -- <-- Ejemplo
DECLARE @Campo1 int -- etc, etc.

/* Agrega/Cambia/Borra registros en el servidor remoto segun el campo Status
del servidor Local */
DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE ISNULL(STATUS,
'A') <> 'P' -- 'P' de Procesado
OPEN FLE_ABC
FETCH NEXT FROM FLE_ABC INTO [@Variables]
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@Status = 'A') OR (@Status = 'B') OR (@Status = 'C') --
'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten procesados
(Status<>'P').
BEGIN
IF (@Status = 'A') OR (@Status = 'C')
BEGIN
IF EXISTS(SELECT * FROM
[ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] =
[@Variable]) -- Si ya existe el registro en el servidor remoto, solo lo
actualiza
BEGIN
UPDATE [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
SET [Campo1]=[@Variable1], [Campo2]=[@Variable2]
WHERE [Campo] = [@Variable] -- Y asi con todos lo campos de la tabla
END
ELSE -- Si no existe el registro en el
servidor remoto, lo agrega
BEGIN
INSERT INTO
[ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
VALUES([@Variable1], [@Variable2])
END
END
ELSE
BEGIN
DELETE FROM [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
WHERE [Campo] = [@Variable]
END
END
FETCH NEXT FROM FLE_ABC INTO [@Variables]
END
CLOSE FLE_ABC
DEALLOCATE FLE_ABC

Despues de esto se ejecutaria otro procedimiento almacenado (u otro proceso
dentro de este mismo SP) que ponga el campo Status = 'P', segun localize o
no los registros en la
Db del servidor remoto.


Esto como dije significa que debo hacer algo asi, para cada tabla (son como
50), aparte de agregar un campo de status a cada tabla.

No existe algo en Sql, para dar de alta/modificar el registro completo sin
tener que entrar en detalle de especificar cada campo (como es el caso del
insert, o update) ?

Alguien tiene una idea sin tener que usar replicacion (ya que esa fue la
sugerencia que me hicieron[no usar replicacion]) ?
Si quieren mas informacion con gusto la proporciono.
Espero haber explicado bien la problematica.

Cualquier idea es bienvenida.

Gracias de antemano.

Saludos.



Respuesta Responder a este mensaje
#2 Alr
07/12/2007 - 23:43 | Informe spam
Muchas gracias por la respuesta.
Tendras alguna pagina o sitio donde pueda ver algun ejemplo o simplemente me
doy un clavado a los
libros en linea de Sql 2000 ?

Saludos.

"Juan Carlos Inestroza Lozano"
wrote in message
news:
Hola

Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
estos servidores y uses SQL TASk para poder empotrar las clausulas que no
permitan datos repetidas y mantegas la integridad de la BD, el escenario
de
agentes de replicacion es el mas recomendado con el modelo publicados y
suscriptor!!


pero debes d etener uan buena arquitectura de comunicaciones!!!

Saludos Cordiales.


Juan Carlos Inestroza Lozano.

"Alr'" wrote:

Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003 R2
server, ambos con sus service pack respectivo), los dos tienen instalado
Sql2000 Standard Edition
Service Pack 4, los dos servidores estan en diferentes cuidades, en uno
de
ellos se corre un sistema de pedidos. El caso es que me piden que la
informacion de este servidor
se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra la
administracion), ya que quieren ver los datos lo mas en linea que se
pueda,
sin embargo me comentan
tambien que han tenido no muy buenas experiencias con el replicador de
Sql,
por lo que me pidieron que usara otra cosa (aparte que nunca he
implementado
un replicador), he
pensado en servidores vinculados (ya que en la cuidad donde llegaran los
datos, existe algo que hace las veces de una ip publica), de forma que si
tengo coneccion de un lado
hacia el otro (pero no hacia ambos lados).
Mi pregunta es, hay alguna forma de implementar esta situacion de forma
mas
o menos simple ?
Ya que lo que se me ocurre son procedimientos almacenados que hagan las
veces de triggers (es decir que estos SP pasen los datos de un servidor
al
otro), y que se ejecuten cada
digamos media hora o 1 hora, pero esto significaria tener que hacer a
mano
todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
respectivos campos, Ejemplo:

DECLARE @Status char(1) -- <-- Ejemplo
DECLARE @Campo1 int -- etc, etc.

/* Agrega/Cambia/Borra registros en el servidor remoto segun el campo
Status
del servidor Local */
DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE
ISNULL(STATUS,
'A') <> 'P' -- 'P' de Procesado
OPEN FLE_ABC
FETCH NEXT FROM FLE_ABC INTO [@Variables]
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@Status = 'A') OR (@Status = 'B') OR (@Status = 'C') --
'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten
procesados
(Status<>'P').
BEGIN
IF (@Status = 'A') OR (@Status = 'C')
BEGIN
IF EXISTS(SELECT * FROM
[ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] >> [@Variable]) -- Si ya existe el registro en el servidor remoto, solo lo
actualiza
BEGIN
UPDATE
[ServidorRemoto].[DbRemota].dbo.[TablaRemota]
SET [Campo1]=[@Variable1], [Campo2]=[@Variable2]
WHERE [Campo] = [@Variable] -- Y asi con todos lo campos de la
tabla
END
ELSE -- Si no existe el registro en el
servidor remoto, lo agrega
BEGIN
INSERT INTO
[ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
VALUES([@Variable1], [@Variable2])
END
END
ELSE
BEGIN
DELETE FROM
[ServidorRemoto].[DbRemota].dbo.[TablaRemota]
WHERE [Campo] = [@Variable]
END
END
FETCH NEXT FROM FLE_ABC INTO [@Variables]
END
CLOSE FLE_ABC
DEALLOCATE FLE_ABC

Despues de esto se ejecutaria otro procedimiento almacenado (u otro
proceso
dentro de este mismo SP) que ponga el campo Status = 'P', segun localize
o
no los registros en la
Db del servidor remoto.


Esto como dije significa que debo hacer algo asi, para cada tabla (son
como
50), aparte de agregar un campo de status a cada tabla.

No existe algo en Sql, para dar de alta/modificar el registro completo
sin
tener que entrar en detalle de especificar cada campo (como es el caso
del
insert, o update) ?

Alguien tiene una idea sin tener que usar replicacion (ya que esa fue la
sugerencia que me hicieron[no usar replicacion]) ?
Si quieren mas informacion con gusto la proporciono.
Espero haber explicado bien la problematica.

Cualquier idea es bienvenida.

Gracias de antemano.

Saludos.



Respuesta Responder a este mensaje
#3 Juan Carlos Inestroza Lozano
08/12/2007 - 06:55 | Informe spam
Bueno aca te envio unas paginas para ver tema por tema:

Implementacion de Replicacion:
http://www.monografias.com/trabajos...atos.shtml
http://www.microsoft.com/spain/sql/...licat.aspx

En cuanto a DTS de SQL Server 2000 te envio estos links de nivel basico a
intermedio:

http://www.manualespracticos.blogspot.com/
http://support.microsoft.com/defaul.../242391/es

Existe un libro que se llama SQL Server 2000 DTS step by step, o puedes
tomar un cursos certificado de SQL Server 2000 como el MOC 2092.

Saludos Cordiales.


Juan Carlos Inestroza Lozano.









"Alr'" wrote:

Muchas gracias por la respuesta.
Tendras alguna pagina o sitio donde pueda ver algun ejemplo o simplemente me
doy un clavado a los
libros en linea de Sql 2000 ?

Saludos.

"Juan Carlos Inestroza Lozano"
wrote in message
news:
> Hola
>
> Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
> estos servidores y uses SQL TASk para poder empotrar las clausulas que no
> permitan datos repetidas y mantegas la integridad de la BD, el escenario
> de
> agentes de replicacion es el mas recomendado con el modelo publicados y
> suscriptor!!
>
>
> pero debes d etener uan buena arquitectura de comunicaciones!!!
>
> Saludos Cordiales.
>
>
> Juan Carlos Inestroza Lozano.
>
> "Alr'" wrote:
>
>> Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003 R2
>> server, ambos con sus service pack respectivo), los dos tienen instalado
>> Sql2000 Standard Edition
>> Service Pack 4, los dos servidores estan en diferentes cuidades, en uno
>> de
>> ellos se corre un sistema de pedidos. El caso es que me piden que la
>> informacion de este servidor
>> se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra la
>> administracion), ya que quieren ver los datos lo mas en linea que se
>> pueda,
>> sin embargo me comentan
>> tambien que han tenido no muy buenas experiencias con el replicador de
>> Sql,
>> por lo que me pidieron que usara otra cosa (aparte que nunca he
>> implementado
>> un replicador), he
>> pensado en servidores vinculados (ya que en la cuidad donde llegaran los
>> datos, existe algo que hace las veces de una ip publica), de forma que si
>> tengo coneccion de un lado
>> hacia el otro (pero no hacia ambos lados).
>> Mi pregunta es, hay alguna forma de implementar esta situacion de forma
>> mas
>> o menos simple ?
>> Ya que lo que se me ocurre son procedimientos almacenados que hagan las
>> veces de triggers (es decir que estos SP pasen los datos de un servidor
>> al
>> otro), y que se ejecuten cada
>> digamos media hora o 1 hora, pero esto significaria tener que hacer a
>> mano
>> todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
>> respectivos campos, Ejemplo:
>>
>> DECLARE @Status char(1) -- <-- Ejemplo
>> DECLARE @Campo1 int -- etc, etc.
>>
>> /* Agrega/Cambia/Borra registros en el servidor remoto segun el campo
>> Status
>> del servidor Local */
>> DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE
>> ISNULL(STATUS,
>> 'A') <> 'P' -- 'P' de Procesado
>> OPEN FLE_ABC
>> FETCH NEXT FROM FLE_ABC INTO [@Variables]
>> WHILE @@FETCH_STATUS = 0
>> BEGIN
>> IF (@Status = 'A') OR (@Status = 'B') OR (@Status = 'C') --
>> 'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten
>> procesados
>> (Status<>'P').
>> BEGIN
>> IF (@Status = 'A') OR (@Status = 'C')
>> BEGIN
>> IF EXISTS(SELECT * FROM
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] > >> [@Variable]) -- Si ya existe el registro en el servidor remoto, solo lo
>> actualiza
>> BEGIN
>> UPDATE
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> SET [Campo1]=[@Variable1], [Campo2]=[@Variable2]
>> WHERE [Campo] = [@Variable] -- Y asi con todos lo campos de la
>> tabla
>> END
>> ELSE -- Si no existe el registro en el
>> servidor remoto, lo agrega
>> BEGIN
>> INSERT INTO
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
>> VALUES([@Variable1], [@Variable2])
>> END
>> END
>> ELSE
>> BEGIN
>> DELETE FROM
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> WHERE [Campo] = [@Variable]
>> END
>> END
>> FETCH NEXT FROM FLE_ABC INTO [@Variables]
>> END
>> CLOSE FLE_ABC
>> DEALLOCATE FLE_ABC
>>
>> Despues de esto se ejecutaria otro procedimiento almacenado (u otro
>> proceso
>> dentro de este mismo SP) que ponga el campo Status = 'P', segun localize
>> o
>> no los registros en la
>> Db del servidor remoto.
>>
>>
>> Esto como dije significa que debo hacer algo asi, para cada tabla (son
>> como
>> 50), aparte de agregar un campo de status a cada tabla.
>>
>> No existe algo en Sql, para dar de alta/modificar el registro completo
>> sin
>> tener que entrar en detalle de especificar cada campo (como es el caso
>> del
>> insert, o update) ?
>>
>> Alguien tiene una idea sin tener que usar replicacion (ya que esa fue la
>> sugerencia que me hicieron[no usar replicacion]) ?
>> Si quieren mas informacion con gusto la proporciono.
>> Espero haber explicado bien la problematica.
>>
>> Cualquier idea es bienvenida.
>>
>> Gracias de antemano.
>>
>> Saludos.
>>
>>
>>



Respuesta Responder a este mensaje
#4 Alr
11/12/2007 - 00:32 | Informe spam
Muchas Gracias otra vez por responder, les echare un vistazo.

Saludos.


"Juan Carlos Inestroza Lozano"
wrote in message
news:
Bueno aca te envio unas paginas para ver tema por tema:

Implementacion de Replicacion:
http://www.monografias.com/trabajos...atos.shtml
http://www.microsoft.com/spain/sql/...licat.aspx

En cuanto a DTS de SQL Server 2000 te envio estos links de nivel basico a
intermedio:

http://www.manualespracticos.blogspot.com/
http://support.microsoft.com/defaul.../242391/es

Existe un libro que se llama SQL Server 2000 DTS step by step, o puedes
tomar un cursos certificado de SQL Server 2000 como el MOC 2092.

Saludos Cordiales.


Juan Carlos Inestroza Lozano.









"Alr'" wrote:

Muchas gracias por la respuesta.
Tendras alguna pagina o sitio donde pueda ver algun ejemplo o simplemente
me
doy un clavado a los
libros en linea de Sql 2000 ?

Saludos.

"Juan Carlos Inestroza Lozano"
wrote in message
news:
> Hola
>
> Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
> estos servidores y uses SQL TASk para poder empotrar las clausulas que
> no
> permitan datos repetidas y mantegas la integridad de la BD, el
> escenario
> de
> agentes de replicacion es el mas recomendado con el modelo publicados y
> suscriptor!!
>
>
> pero debes d etener uan buena arquitectura de comunicaciones!!!
>
> Saludos Cordiales.
>
>
> Juan Carlos Inestroza Lozano.
>
> "Alr'" wrote:
>
>> Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003
>> R2
>> server, ambos con sus service pack respectivo), los dos tienen
>> instalado
>> Sql2000 Standard Edition
>> Service Pack 4, los dos servidores estan en diferentes cuidades, en
>> uno
>> de
>> ellos se corre un sistema de pedidos. El caso es que me piden que la
>> informacion de este servidor
>> se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra
>> la
>> administracion), ya que quieren ver los datos lo mas en linea que se
>> pueda,
>> sin embargo me comentan
>> tambien que han tenido no muy buenas experiencias con el replicador de
>> Sql,
>> por lo que me pidieron que usara otra cosa (aparte que nunca he
>> implementado
>> un replicador), he
>> pensado en servidores vinculados (ya que en la cuidad donde llegaran
>> los
>> datos, existe algo que hace las veces de una ip publica), de forma que
>> si
>> tengo coneccion de un lado
>> hacia el otro (pero no hacia ambos lados).
>> Mi pregunta es, hay alguna forma de implementar esta situacion de
>> forma
>> mas
>> o menos simple ?
>> Ya que lo que se me ocurre son procedimientos almacenados que hagan
>> las
>> veces de triggers (es decir que estos SP pasen los datos de un
>> servidor
>> al
>> otro), y que se ejecuten cada
>> digamos media hora o 1 hora, pero esto significaria tener que hacer a
>> mano
>> todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
>> respectivos campos, Ejemplo:
>>
>> DECLARE @Status char(1) -- <-- Ejemplo
>> DECLARE @Campo1 int -- etc, etc.
>>
>> /* Agrega/Cambia/Borra registros en el servidor remoto segun el campo
>> Status
>> del servidor Local */
>> DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE
>> ISNULL(STATUS,
>> 'A') <> 'P' -- 'P' de Procesado
>> OPEN FLE_ABC
>> FETCH NEXT FROM FLE_ABC INTO [@Variables]
>> WHILE @@FETCH_STATUS = 0
>> BEGIN
>> IF (@Status = 'A') OR (@Status = 'B') OR (@Status = 'C') --
>> 'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten
>> procesados
>> (Status<>'P').
>> BEGIN
>> IF (@Status = 'A') OR (@Status = 'C')
>> BEGIN
>> IF EXISTS(SELECT * FROM
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] >> >> [@Variable]) -- Si ya existe el registro en el servidor remoto, solo
>> lo
>> actualiza
>> BEGIN
>> UPDATE
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> SET [Campo1]=[@Variable1],
>> [Campo2]=[@Variable2]
>> WHERE [Campo] = [@Variable] -- Y asi con todos lo campos de la
>> tabla
>> END
>> ELSE -- Si no existe el registro en el
>> servidor remoto, lo agrega
>> BEGIN
>> INSERT INTO
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
>> VALUES([@Variable1], [@Variable2])
>> END
>> END
>> ELSE
>> BEGIN
>> DELETE FROM
>> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> WHERE [Campo] = [@Variable]
>> END
>> END
>> FETCH NEXT FROM FLE_ABC INTO [@Variables]
>> END
>> CLOSE FLE_ABC
>> DEALLOCATE FLE_ABC
>>
>> Despues de esto se ejecutaria otro procedimiento almacenado (u otro
>> proceso
>> dentro de este mismo SP) que ponga el campo Status = 'P', segun
>> localize
>> o
>> no los registros en la
>> Db del servidor remoto.
>>
>>
>> Esto como dije significa que debo hacer algo asi, para cada tabla (son
>> como
>> 50), aparte de agregar un campo de status a cada tabla.
>>
>> No existe algo en Sql, para dar de alta/modificar el registro completo
>> sin
>> tener que entrar en detalle de especificar cada campo (como es el caso
>> del
>> insert, o update) ?
>>
>> Alguien tiene una idea sin tener que usar replicacion (ya que esa fue
>> la
>> sugerencia que me hicieron[no usar replicacion]) ?
>> Si quieren mas informacion con gusto la proporciono.
>> Espero haber explicado bien la problematica.
>>
>> Cualquier idea es bienvenida.
>>
>> Gracias de antemano.
>>
>> Saludos.
>>
>>
>>



Respuesta Responder a este mensaje
#5 Juan Carlos Inestroza Lozano
11/12/2007 - 01:15 | Informe spam
De nada estamos a la orden
Solo recuerda mas investigar sobre desarollo step by step de DTS en sql
server 2000 o de SSIS para sql 2005.


Saludos.

Juan Carlos Inestroza Lozano

"Alr'" wrote:

Muchas Gracias otra vez por responder, les echare un vistazo.

Saludos.


"Juan Carlos Inestroza Lozano"
wrote in message
news:
> Bueno aca te envio unas paginas para ver tema por tema:
>
> Implementacion de Replicacion:
> http://www.monografias.com/trabajos...atos.shtml
> http://www.microsoft.com/spain/sql/...licat.aspx
>
> En cuanto a DTS de SQL Server 2000 te envio estos links de nivel basico a
> intermedio:
>
> http://www.manualespracticos.blogspot.com/
> http://support.microsoft.com/defaul.../242391/es
>
> Existe un libro que se llama SQL Server 2000 DTS step by step, o puedes
> tomar un cursos certificado de SQL Server 2000 como el MOC 2092.
>
> Saludos Cordiales.
>
>
> Juan Carlos Inestroza Lozano.
>
>
>
>
>
>
>
>
>
> "Alr'" wrote:
>
>> Muchas gracias por la respuesta.
>> Tendras alguna pagina o sitio donde pueda ver algun ejemplo o simplemente
>> me
>> doy un clavado a los
>> libros en linea de Sql 2000 ?
>>
>> Saludos.
>>
>> "Juan Carlos Inestroza Lozano"
>> wrote in message
>> news:
>> > Hola
>> >
>> > Te recomendaria usar DTS y asi verifiques los medios de tranferencia de
>> > estos servidores y uses SQL TASk para poder empotrar las clausulas que
>> > no
>> > permitan datos repetidas y mantegas la integridad de la BD, el
>> > escenario
>> > de
>> > agentes de replicacion es el mas recomendado con el modelo publicados y
>> > suscriptor!!
>> >
>> >
>> > pero debes d etener uan buena arquitectura de comunicaciones!!!
>> >
>> > Saludos Cordiales.
>> >
>> >
>> > Juan Carlos Inestroza Lozano.
>> >
>> > "Alr'" wrote:
>> >
>> >> Tengo dos servidores Dell (uno con Win2k Server, y otro con Win 2003
>> >> R2
>> >> server, ambos con sus service pack respectivo), los dos tienen
>> >> instalado
>> >> Sql2000 Standard Edition
>> >> Service Pack 4, los dos servidores estan en diferentes cuidades, en
>> >> uno
>> >> de
>> >> ellos se corre un sistema de pedidos. El caso es que me piden que la
>> >> informacion de este servidor
>> >> se pase al de la otra cuidad (Win 2003 R2 server, donde se encuentra
>> >> la
>> >> administracion), ya que quieren ver los datos lo mas en linea que se
>> >> pueda,
>> >> sin embargo me comentan
>> >> tambien que han tenido no muy buenas experiencias con el replicador de
>> >> Sql,
>> >> por lo que me pidieron que usara otra cosa (aparte que nunca he
>> >> implementado
>> >> un replicador), he
>> >> pensado en servidores vinculados (ya que en la cuidad donde llegaran
>> >> los
>> >> datos, existe algo que hace las veces de una ip publica), de forma que
>> >> si
>> >> tengo coneccion de un lado
>> >> hacia el otro (pero no hacia ambos lados).
>> >> Mi pregunta es, hay alguna forma de implementar esta situacion de
>> >> forma
>> >> mas
>> >> o menos simple ?
>> >> Ya que lo que se me ocurre son procedimientos almacenados que hagan
>> >> las
>> >> veces de triggers (es decir que estos SP pasen los datos de un
>> >> servidor
>> >> al
>> >> otro), y que se ejecuten cada
>> >> digamos media hora o 1 hora, pero esto significaria tener que hacer a
>> >> mano
>> >> todos los "INSERT, UPDATE y DELETE" de cada una de las tablas con sus
>> >> respectivos campos, Ejemplo:
>> >>
>> >> DECLARE @Status char(1) -- <-- Ejemplo
>> >> DECLARE @Campo1 int -- etc, etc.
>> >>
>> >> /* Agrega/Cambia/Borra registros en el servidor remoto segun el campo
>> >> Status
>> >> del servidor Local */
>> >> DECLARE FLE_ABC CURSOR FOR SELECT [Campos] FROM [Tabla] WHERE
>> >> ISNULL(STATUS,
>> >> 'A') <> 'P' -- 'P' de Procesado
>> >> OPEN FLE_ABC
>> >> FETCH NEXT FROM FLE_ABC INTO [@Variables]
>> >> WHILE @@FETCH_STATUS = 0
>> >> BEGIN
>> >> IF (@Status = 'A') OR (@Status = 'B') OR (@Status = 'C') --
>> >> 'A'=Alta, 'B'=Baja, 'C'=Cambio, solo los registros que no esten
>> >> procesados
>> >> (Status<>'P').
>> >> BEGIN
>> >> IF (@Status = 'A') OR (@Status = 'C')
>> >> BEGIN
>> >> IF EXISTS(SELECT * FROM
>> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] WHERE [Campo] > >> >> [@Variable]) -- Si ya existe el registro en el servidor remoto, solo
>> >> lo
>> >> actualiza
>> >> BEGIN
>> >> UPDATE
>> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> >> SET [Campo1]=[@Variable1],
>> >> [Campo2]=[@Variable2]
>> >> WHERE [Campo] = [@Variable] -- Y asi con todos lo campos de la
>> >> tabla
>> >> END
>> >> ELSE -- Si no existe el registro en el
>> >> servidor remoto, lo agrega
>> >> BEGIN
>> >> INSERT INTO
>> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota] ([Campo1], [Campo2])
>> >> VALUES([@Variable1], [@Variable2])
>> >> END
>> >> END
>> >> ELSE
>> >> BEGIN
>> >> DELETE FROM
>> >> [ServidorRemoto].[DbRemota].dbo.[TablaRemota]
>> >> WHERE [Campo] = [@Variable]
>> >> END
>> >> END
>> >> FETCH NEXT FROM FLE_ABC INTO [@Variables]
>> >> END
>> >> CLOSE FLE_ABC
>> >> DEALLOCATE FLE_ABC
>> >>
>> >> Despues de esto se ejecutaria otro procedimiento almacenado (u otro
>> >> proceso
>> >> dentro de este mismo SP) que ponga el campo Status = 'P', segun
>> >> localize
>> >> o
>> >> no los registros en la
>> >> Db del servidor remoto.
>> >>
>> >>
>> >> Esto como dije significa que debo hacer algo asi, para cada tabla (son
>> >> como
>> >> 50), aparte de agregar un campo de status a cada tabla.
>> >>
>> >> No existe algo en Sql, para dar de alta/modificar el registro completo
>> >> sin
>> >> tener que entrar en detalle de especificar cada campo (como es el caso
>> >> del
>> >> insert, o update) ?
>> >>
>> >> Alguien tiene una idea sin tener que usar replicacion (ya que esa fue
>> >> la
>> >> sugerencia que me hicieron[no usar replicacion]) ?
>> >> Si quieren mas informacion con gusto la proporciono.
>> >> Espero haber explicado bien la problematica.
>> >>
>> >> Cualquier idea es bienvenida.
>> >>
>> >> Gracias de antemano.
>> >>
>> >> Saludos.
>> >>
>> >>
>> >>
>>
>>
>>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida