Problemas con la intercalación con un SP

01/04/2005 - 19:28 por Santiago Salgado | Informe spam
Amigos,

Temgo un problema con la intercalación de la base de datos, no tengo
seleccionado ningún tipo de intercalación para las bases de datos pero al
realizar lo siguiente se me modifica la intercalación y no puedo realizar
las consultas

if exists(select * from sysobjects where name = ''' + @TablaCopiar +''')
drop table ' + @TablaCopiar + '
SELECT * INTO ' + @TablaCopiar + ' FROM BaseOrigen..' + @TablaCopiar

Mismos pasos que estan en un SP lo que quiero es que la base quede como al
inicio o en su debido caso que la tabla no posea intercalación para poder
trabajar sin problemas.



Atentamente,
___________________________
Santiago Salgado

Preguntas similare

Leer las respuestas

#1 Maxi
01/04/2005 - 22:43 | Informe spam
Hola, no entiendo bien el problema. No puedes hacer que no exista
intercalacion, lo que puedes hacer es que exista la default o sino una
distinta


Salu2
Maxi


"Santiago Salgado" escribió en el mensaje
news:
Amigos,

Temgo un problema con la intercalación de la base de datos, no tengo
seleccionado ningún tipo de intercalación para las bases de datos pero al
realizar lo siguiente se me modifica la intercalación y no puedo realizar
las consultas

if exists(select * from sysobjects where name = ''' + @TablaCopiar +''')
drop table ' + @TablaCopiar + '
SELECT * INTO ' + @TablaCopiar + ' FROM BaseOrigen..' + @TablaCopiar

Mismos pasos que estan en un SP lo que quiero es que la base quede como al
inicio o en su debido caso que la tabla no posea intercalación para poder
trabajar sin problemas.



Atentamente,
___________________________
Santiago Salgado


Respuesta Responder a este mensaje
#2 Santiago Salgado
02/04/2005 - 00:14 | Informe spam
Lo que pasa es que creado una nueva base de datos por cada mes y al momento
de pasar los datos de una a otra la intercalación no me permite trabajar,
por defecto en la instalación no se a seleccionado ningún tipo de
intercalacíon pero al momento de pasar los datos con el SP de la base de
origen a la de destino la intercalación de la base destino cambia y no se
como dejarla sin intercalación.


"Maxi" escribió en el mensaje
news:%
Hola, no entiendo bien el problema. No puedes hacer que no exista
intercalacion, lo que puedes hacer es que exista la default o sino una
distinta


Salu2
Maxi


"Santiago Salgado" escribió en el mensaje
news:
> Amigos,
>
> Temgo un problema con la intercalación de la base de datos, no tengo
> seleccionado ningún tipo de intercalación para las bases de datos pero


al
> realizar lo siguiente se me modifica la intercalación y no puedo


realizar
> las consultas
>
> if exists(select * from sysobjects where name = ''' + @TablaCopiar +''')
> drop table ' + @TablaCopiar + '
> SELECT * INTO ' + @TablaCopiar + ' FROM BaseOrigen..' + @TablaCopiar
>
> Mismos pasos que estan en un SP lo que quiero es que la base quede como


al
> inicio o en su debido caso que la tabla no posea intercalación para


poder
> trabajar sin problemas.
>
>
>
> Atentamente,
> ___________________________
> Santiago Salgado
>
>


Respuesta Responder a este mensaje
#3 Miguel Egea
03/04/2005 - 16:17 | Informe spam
No se puede especificar sin intercalación, el problema está en el select
into, haz un create table y establece la intercalación similar a la
quetienes, eso evitará problemas.

En cualquier caso si quieres puedes pasarnos el código y de decimos la
cláusula que debes teclear para evitar problemas.


-
Miguel Egea Gómez
Microsoft SQL-Server MVP, MCSD, MCAD,MCT
Webmaster de PortalSql.Com
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Santiago Salgado" escribió en el mensaje
news:
Lo que pasa es que creado una nueva base de datos por cada mes y al
momento
de pasar los datos de una a otra la intercalación no me permite trabajar,
por defecto en la instalación no se a seleccionado ningún tipo de
intercalacíon pero al momento de pasar los datos con el SP de la base de
origen a la de destino la intercalación de la base destino cambia y no se
como dejarla sin intercalación.


"Maxi" escribió en el mensaje
news:%
Hola, no entiendo bien el problema. No puedes hacer que no exista
intercalacion, lo que puedes hacer es que exista la default o sino una
distinta


Salu2
Maxi


"Santiago Salgado" escribió en el mensaje
news:
> Amigos,
>
> Temgo un problema con la intercalación de la base de datos, no tengo
> seleccionado ningún tipo de intercalación para las bases de datos pero


al
> realizar lo siguiente se me modifica la intercalación y no puedo


realizar
> las consultas
>
> if exists(select * from sysobjects where name = ''' + @TablaCopiar
> +''')
> drop table ' + @TablaCopiar + '
> SELECT * INTO ' + @TablaCopiar + ' FROM BaseOrigen..' + @TablaCopiar
>
> Mismos pasos que estan en un SP lo que quiero es que la base quede como


al
> inicio o en su debido caso que la tabla no posea intercalación para


poder
> trabajar sin problemas.
>
>
>
> Atentamente,
> ___________________________
> Santiago Salgado
>
>







Respuesta Responder a este mensaje
#4 Santiago Salgado
04/04/2005 - 16:47 | Informe spam
Este es el código que utilizo en el SP para copiar la tabla que quiero de
una base a otra

IF @Opcion = 'CREAR'
BEGIN
SET @InicioCadena = 'USE ' + @BaseDatos + ' '
SET @ExisteTabla = 'if exists(select * from sysobjects where name = '''
+ @TablaCopiar +''') drop table ' + @TablaCopiar + ' '
SET @Cadena = ' SELECT * INTO ' + @TablaCopiar + ' FROM
SFCReporting..' + @TablaCopiar + ' COLLATE Modern_Spanish_CI_AS '
SET @CadenaFinal = @InicioCadena + @ExisteTabla + @Cadena
EXECUTE sp_executesql @CadenaFinal
END

y esta es la consulta que realizo en dos tablas una que la copio con un DTS
porque es mas rápido y la segunda con el procedimiento arriba mencionado

Esta es la consulta que necesito para poder trabajar pero la intercalación
no me la permite

sSQL = "SELECT saldo.Fecha, " & _
" 'Cuenta' = catalogo.cuenta, " & _
" catalogo.descripcion, " & _
" saldo.Saldo_Final_PostClosing " & _
" From saldo, catalogo, reporte_cuentas " & _
" WHERE saldo.cuenta = reporte_cuentas.cuenta "
& _
" and saldo.codigo_tipocatalogo reporte_cuentas.codigo_tipocatalogo " & _
" and reporte_cuentas.reporte = 'ENC' " & _
" and saldo.cuenta = catalogo.cuenta " & _
" and saldo.codigo_tipocatalogo catalogo.codigo_tipocatalogo " & _
" and saldo.codigo_tipocatalogo reporte_cuentas.codigo_tipocatalogo " & _
" and saldo.fecha >= '" & DTPfechaInicial.Value
& "' " & _
" and saldo.fecha <= '" & DTPfechaFinal.Value &
"' " & _
" and catalogo.vigente_desde <= '" &
DTPfechaFinal.Value & "' " & _
" and catalogo.vigente_hasta >= '" &
DTPfechaInicial.Value & "' " & _
" and saldo.codigo_sucursal = '" &
TxtSucursal.Text & "'"
sSQL = sSQL & " ORDER BY Saldo.fecha, Saldo.Cuenta"

La tabla Saldos fue copiada con un DTS


"Miguel Egea" escribió en el mensaje
news:
No se puede especificar sin intercalación, el problema está en el select
into, haz un create table y establece la intercalación similar a la
quetienes, eso evitará problemas.

En cualquier caso si quieres puedes pasarnos el código y de decimos la
cláusula que debes teclear para evitar problemas.


-
Miguel Egea Gómez
Microsoft SQL-Server MVP, MCSD, MCAD,MCT
Webmaster de PortalSql.Com
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Santiago Salgado" escribió en el mensaje
news:
> Lo que pasa es que creado una nueva base de datos por cada mes y al
> momento
> de pasar los datos de una a otra la intercalación no me permite


trabajar,
> por defecto en la instalación no se a seleccionado ningún tipo de
> intercalacíon pero al momento de pasar los datos con el SP de la base de
> origen a la de destino la intercalación de la base destino cambia y no


se
> como dejarla sin intercalación.
>
>
> "Maxi" escribió en el mensaje
> news:%
>> Hola, no entiendo bien el problema. No puedes hacer que no exista
>> intercalacion, lo que puedes hacer es que exista la default o sino una
>> distinta
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Santiago Salgado" escribió en el mensaje
>> news:
>> > Amigos,
>> >
>> > Temgo un problema con la intercalación de la base de datos, no tengo
>> > seleccionado ningún tipo de intercalación para las bases de datos


pero
> al
>> > realizar lo siguiente se me modifica la intercalación y no puedo
> realizar
>> > las consultas
>> >
>> > if exists(select * from sysobjects where name = ''' + @TablaCopiar
>> > +''')
>> > drop table ' + @TablaCopiar + '
>> > SELECT * INTO ' + @TablaCopiar + ' FROM BaseOrigen..' + @TablaCopiar
>> >
>> > Mismos pasos que estan en un SP lo que quiero es que la base quede


como
> al
>> > inicio o en su debido caso que la tabla no posea intercalación para
> poder
>> > trabajar sin problemas.
>> >
>> >
>> >
>> > Atentamente,
>> > ___________________________
>> > Santiago Salgado
>> >
>> >
>>
>>
>
>
>



Respuesta Responder a este mensaje
#5 Miguel Egea
04/04/2005 - 23:23 | Informe spam
¿te estas trayendo la tabla de otra bbdd?

Lo primero usa nombres en tres partes, BBDD.Propietario.Tabla y haz
referencia a la otra tabla, no es necesario que la copies a tu BBDD, solo
penalizará tu rendimiento.

El problema en tu select solo puede ser entre campos que tengan distintos
collates, tendrás que cambiar por ejemplo todas las referencias en el where
con algo así

where saldo.cuenta collate database_Default=reporte_cuentas.cuenta collate
database_Default.

Ahora bien, este tipo de sentencias impedirán que se usen índices, por lo
que es muy probable que el rendimiento se vea afectado.

Sigue el consejo de estos dos artículos para mejorar ese problema.
http://www.configuracionesintegrale...p?articulo‰
http://www.configuracionesintegrale...?articuloy
Saludos
Miguel Egea

"Santiago Salgado" escribió en el mensaje
news:
Este es el código que utilizo en el SP para copiar la tabla que quiero de
una base a otra

IF @Opcion = 'CREAR'
BEGIN
SET @InicioCadena = 'USE ' + @BaseDatos + ' '
SET @ExisteTabla = 'if exists(select * from sysobjects where name = '''
+ @TablaCopiar +''') drop table ' + @TablaCopiar + ' '
SET @Cadena = ' SELECT * INTO ' + @TablaCopiar + ' FROM
SFCReporting..' + @TablaCopiar + ' COLLATE Modern_Spanish_CI_AS '
SET @CadenaFinal = @InicioCadena + @ExisteTabla + @Cadena
EXECUTE sp_executesql @CadenaFinal
END

y esta es la consulta que realizo en dos tablas una que la copio con un
DTS
porque es mas rápido y la segunda con el procedimiento arriba mencionado

Esta es la consulta que necesito para poder trabajar pero la intercalación
no me la permite

sSQL = "SELECT saldo.Fecha, " & _
" 'Cuenta' = catalogo.cuenta, " & _
" catalogo.descripcion, " & _
" saldo.Saldo_Final_PostClosing " & _
" From saldo, catalogo, reporte_cuentas " & _
" WHERE saldo.cuenta = reporte_cuentas.cuenta "
& _
" and saldo.codigo_tipocatalogo > reporte_cuentas.codigo_tipocatalogo " & _
" and reporte_cuentas.reporte = 'ENC' " & _
" and saldo.cuenta = catalogo.cuenta " & _
" and saldo.codigo_tipocatalogo > catalogo.codigo_tipocatalogo " & _
" and saldo.codigo_tipocatalogo > reporte_cuentas.codigo_tipocatalogo " & _
" and saldo.fecha >= '" & DTPfechaInicial.Value
& "' " & _
" and saldo.fecha <= '" & DTPfechaFinal.Value &
"' " & _
" and catalogo.vigente_desde <= '" &
DTPfechaFinal.Value & "' " & _
" and catalogo.vigente_hasta >= '" &
DTPfechaInicial.Value & "' " & _
" and saldo.codigo_sucursal = '" &
TxtSucursal.Text & "'"
sSQL = sSQL & " ORDER BY Saldo.fecha, Saldo.Cuenta"

La tabla Saldos fue copiada con un DTS


"Miguel Egea" escribió en el mensaje
news:
No se puede especificar sin intercalación, el problema está en el select
into, haz un create table y establece la intercalación similar a la
quetienes, eso evitará problemas.

En cualquier caso si quieres puedes pasarnos el código y de decimos la
cláusula que debes teclear para evitar problemas.


-
Miguel Egea Gómez
Microsoft SQL-Server MVP, MCSD, MCAD,MCT
Webmaster de PortalSql.Com
¿Te interesa participar en las reuniones
del grupo de Usuarios de SQL-Server y .NET
Se harán en levante de España, (Alicante o Murcia)?

"Santiago Salgado" escribió en el mensaje
news:
> Lo que pasa es que creado una nueva base de datos por cada mes y al
> momento
> de pasar los datos de una a otra la intercalación no me permite


trabajar,
> por defecto en la instalación no se a seleccionado ningún tipo de
> intercalacíon pero al momento de pasar los datos con el SP de la base
> de
> origen a la de destino la intercalación de la base destino cambia y no


se
> como dejarla sin intercalación.
>
>
> "Maxi" escribió en el mensaje
> news:%
>> Hola, no entiendo bien el problema. No puedes hacer que no exista
>> intercalacion, lo que puedes hacer es que exista la default o sino una
>> distinta
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Santiago Salgado" escribió en el mensaje
>> news:
>> > Amigos,
>> >
>> > Temgo un problema con la intercalación de la base de datos, no tengo
>> > seleccionado ningún tipo de intercalación para las bases de datos


pero
> al
>> > realizar lo siguiente se me modifica la intercalación y no puedo
> realizar
>> > las consultas
>> >
>> > if exists(select * from sysobjects where name = ''' + @TablaCopiar
>> > +''')
>> > drop table ' + @TablaCopiar + '
>> > SELECT * INTO ' + @TablaCopiar + ' FROM BaseOrigen..' + @TablaCopiar
>> >
>> > Mismos pasos que estan en un SP lo que quiero es que la base quede


como
> al
>> > inicio o en su debido caso que la tabla no posea intercalación para
> poder
>> > trabajar sin problemas.
>> >
>> >
>> >
>> > Atentamente,
>> > ___________________________
>> > Santiago Salgado
>> >
>> >
>>
>>
>
>
>







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