Crear Indices como Expresión

08/06/2006 - 01:06 por Daniel H. Villa | Informe spam
Hola Grupo:

Estoy migrando una Base de Datos hecha en Visual FoxPro 7.0 a SQL Server
2000.

A esta BD SQL le estoy creando los indices, sin embargo necesito crear
Indices de Tipo Expresión, por Ejm:

En la BD de FoxPro Tengo una Tabla que se llama:

c_Medios y tiene estos campos

1) c_medio
2) c_nommedio
3) n_clave
4) b_habilita

Los indices que tiene son de tipo "Candidato" y "Normal". Mi duda es
a) como definiria el tipo Candidato.
y otra es que b) tiene un indice de tipo Expresión y la expresión esta asi:
SUBSTR(c_medio,1,5).

No se como definirla o si el SQL Server maneja este tipo de Indices. Ojala y
alguien me pueda ayudar.

Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

Preguntas similare

Leer las respuestas

#6 Daniel H. Villa
08/06/2006 - 23:55 | Informe spam
Hola Maxi:

De manera simultanea como 1ra Etapa se va trabajar con las dos Bases. Cuando
se valide que las dos BD, estan trabajando a la par, se libera y se
trabajaría solo SQL Server. Se que se va agregar programación para trabajar
con la BD SQL, pero el problema que tengo es la estructura de los Indices de
Expresión, que se ocupan para las busquedas y filtros, que se manejan en el
Sistema FoxPro.

Nota: Otra cuestión que se me paso fue la creación de las Vistas, que es
otro tema aparte. Por lo pronto la duda que tengo, es en los indices para
definir mi BD SQL Server.
Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

"Maxi" escribió en el mensaje
news:%
Hola, perdon por meterme!! aun no me queda claro para q queres esos
indices!! si queres trabajar dual y el sistema 1 sera Foxpro tu codigo
entonces:

opcion 1: Usar DTS y migrar cada X tiempo lo que pasa en Fox
Opcion 2: Recodificas tu sistema para que escriba en Fox y SQL (si lo
tenes armado de forma adecuada es cuestion de tocar una capa nomas)


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Daniel H. Villa" escribió en el mensaje
news:uS9ko$
Hola Salvador te explico:

Tenemos un sistema hecho en Visual FoxPro 7.0. Se pretende emigrar la BD
en SQL Server 2000. Para no alterar su funcionamiento en cuanto al codigo
y la estructura de las Tablas e Indices, estoy haciendo la conexión de la
BD SQL Server con programación FoxPro.

Como 1ra etapa se va trabajar con ambas BD la de FoxPro y la de SQL
Server, lo que estoy realizando es que cuando se haga una actualización o
se graben datos en la BD de FoxPro se actualicen tambien en la de SQL
Server. Ambas BD deben tener la misma información.

FoxPro maneja un tipo de Indices de Expresión que no encuentro en SQL
Server los cuales se aplican para hacer busquedas. Lo que quiero saber
que otra función aplicaria para SQL Server y que pueda trabajar sin
ningun problema de ambiguedad con los dos tipos de BDs.

Ya cuando este 100% que ambas BDs tengan la misma información, asi como
las busquedas, funcionamiento y procesos internos sean iguales, entonces
se trabajaria con la BD SQL Server por completo.

Espero que con lo que te plateo me puedas ayudar
Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

"Salvador Ramos" escribió en el
mensaje news:
Hola,

Y para qué necesitas crear esos índices ? tienes problemas de
rendimiento ?

En FoxPro son necesarios, por ejemplo, para realizar ordenaciones por
esa expresión. En SQL server o cualquier motor relacional no es
necesario, simplemente se harían en caso de que querer mejorar el
rendimiento de las consultas que utilicen esas expresiones.

Explícanos que es lo que necesitas hacer exactamente, e intentaremos
darte una solución aplicada a SQL Server, que posiblemente no coincidirá
con la que has aplicado en FoxPro.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Daniel H. Villa" escribió en el
mensaje news:e$
Hola:

sobre lo que dices:

una columna, es un indicio que no has normalizado adecuadamente el
esquema de tu base de datos. Deberías solucionar ese problema primero.




No es posible hacer cambios de origen.

La BD de FoxPro ya esta trabajando asi, la programación de FoxPro
REQUIERE, este tipo de expresiones.

Pienso que SQL Server debe tener algun tipo de función para manejar
este tipo de casos.

Si otra persona gentilmente me pudiera dar otra solución con gusto se
lo agradecere.

Gustavo de todas maneras gracias por tu opinión, pero no creo que esa
sea la solución.

Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

"Gustavo Larriera [MVP]" escribió en el
mensaje news:
En SQL Server no se dispone de expresiones en los índices.

Desde el punto de vista formal, si estás necesitando indexar un
fragmento de una columna, es un indicio que no has normalizado
adecuadamente el esquema de tu base de datos. Deberías solucionar ese
problema primero.



Gustavo Larriera, MVP SQL
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga
ningun derecho / This posting is provided "AS IS" with no warranties,
and confers no rights.

"Daniel H. Villa" wrote in message
news:
Hola Grupo:

Estoy migrando una Base de Datos hecha en Visual FoxPro 7.0 a SQL
Server 2000.

A esta BD SQL le estoy creando los indices, sin embargo necesito
crear Indices de Tipo Expresión, por Ejm:

En la BD de FoxPro Tengo una Tabla que se llama:

c_Medios y tiene estos campos

1) c_medio
2) c_nommedio
3) n_clave
4) b_habilita

Los indices que tiene son de tipo "Candidato" y "Normal". Mi duda es
a) como definiria el tipo Candidato.
y otra es que b) tiene un indice de tipo Expresión y la expresión
esta asi: SUBSTR(c_medio,1,5).

No se como definirla o si el SQL Server maneja este tipo de Indices.
Ojala y alguien me pueda ayudar.

Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°






















Respuesta Responder a este mensaje
#7 Maxi
09/06/2006 - 19:38 | Informe spam
Hola, vuelvo a repetir lo mismos, en SQL cuando cambies para que la cosa sea
dual no podras usar estos indices y deberas usar features del producto. No
es cuestion solo de cambiar cadenas de conexion, debes modificar el codigo
para que sea tambien soportado con SQLServer


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Daniel H. Villa" escribió en el mensaje
news:
Hola Maxi:

De manera simultanea como 1ra Etapa se va trabajar con las dos Bases.
Cuando se valide que las dos BD, estan trabajando a la par, se libera y se
trabajaría solo SQL Server. Se que se va agregar programación para
trabajar con la BD SQL, pero el problema que tengo es la estructura de los
Indices de Expresión, que se ocupan para las busquedas y filtros, que se
manejan en el Sistema FoxPro.

Nota: Otra cuestión que se me paso fue la creación de las Vistas, que es
otro tema aparte. Por lo pronto la duda que tengo, es en los indices para
definir mi BD SQL Server.
Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

"Maxi" escribió en el mensaje
news:%
Hola, perdon por meterme!! aun no me queda claro para q queres esos
indices!! si queres trabajar dual y el sistema 1 sera Foxpro tu codigo
entonces:

opcion 1: Usar DTS y migrar cada X tiempo lo que pasa en Fox
Opcion 2: Recodificas tu sistema para que escriba en Fox y SQL (si lo
tenes armado de forma adecuada es cuestion de tocar una capa nomas)


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Daniel H. Villa" escribió en el
mensaje news:uS9ko$
Hola Salvador te explico:

Tenemos un sistema hecho en Visual FoxPro 7.0. Se pretende emigrar la BD
en SQL Server 2000. Para no alterar su funcionamiento en cuanto al
codigo y la estructura de las Tablas e Indices, estoy haciendo la
conexión de la BD SQL Server con programación FoxPro.

Como 1ra etapa se va trabajar con ambas BD la de FoxPro y la de SQL
Server, lo que estoy realizando es que cuando se haga una actualización
o se graben datos en la BD de FoxPro se actualicen tambien en la de SQL
Server. Ambas BD deben tener la misma información.

FoxPro maneja un tipo de Indices de Expresión que no encuentro en SQL
Server los cuales se aplican para hacer busquedas. Lo que quiero saber
que otra función aplicaria para SQL Server y que pueda trabajar sin
ningun problema de ambiguedad con los dos tipos de BDs.

Ya cuando este 100% que ambas BDs tengan la misma información, asi como
las busquedas, funcionamiento y procesos internos sean iguales, entonces
se trabajaria con la BD SQL Server por completo.

Espero que con lo que te plateo me puedas ayudar
Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

"Salvador Ramos" escribió en el
mensaje news:
Hola,

Y para qué necesitas crear esos índices ? tienes problemas de
rendimiento ?

En FoxPro son necesarios, por ejemplo, para realizar ordenaciones por
esa expresión. En SQL server o cualquier motor relacional no es
necesario, simplemente se harían en caso de que querer mejorar el
rendimiento de las consultas que utilicen esas expresiones.

Explícanos que es lo que necesitas hacer exactamente, e intentaremos
darte una solución aplicada a SQL Server, que posiblemente no
coincidirá con la que has aplicado en FoxPro.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Daniel H. Villa" escribió en el
mensaje news:e$
Hola:

sobre lo que dices:

una columna, es un indicio que no has normalizado adecuadamente el
esquema de tu base de datos. Deberías solucionar ese problema
primero.




No es posible hacer cambios de origen.

La BD de FoxPro ya esta trabajando asi, la programación de FoxPro
REQUIERE, este tipo de expresiones.

Pienso que SQL Server debe tener algun tipo de función para manejar
este tipo de casos.

Si otra persona gentilmente me pudiera dar otra solución con gusto se
lo agradecere.

Gustavo de todas maneras gracias por tu opinión, pero no creo que esa
sea la solución.

Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

"Gustavo Larriera [MVP]" escribió en el
mensaje news:
En SQL Server no se dispone de expresiones en los índices.

Desde el punto de vista formal, si estás necesitando indexar un
fragmento de una columna, es un indicio que no has normalizado
adecuadamente el esquema de tu base de datos. Deberías solucionar ese
problema primero.



Gustavo Larriera, MVP SQL
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga
ningun derecho / This posting is provided "AS IS" with no warranties,
and confers no rights.

"Daniel H. Villa" wrote in message
news:
Hola Grupo:

Estoy migrando una Base de Datos hecha en Visual FoxPro 7.0 a SQL
Server 2000.

A esta BD SQL le estoy creando los indices, sin embargo necesito
crear Indices de Tipo Expresión, por Ejm:

En la BD de FoxPro Tengo una Tabla que se llama:

c_Medios y tiene estos campos

1) c_medio
2) c_nommedio
3) n_clave
4) b_habilita

Los indices que tiene son de tipo "Candidato" y "Normal". Mi duda es
a) como definiria el tipo Candidato.
y otra es que b) tiene un indice de tipo Expresión y la expresión
esta asi: SUBSTR(c_medio,1,5).

No se como definirla o si el SQL Server maneja este tipo de Indices.
Ojala y alguien me pueda ayudar.

Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°


























Respuesta Responder a este mensaje
#8 Salvador Ramos
11/06/2006 - 21:30 | Informe spam
De acuerdo con lo que dices, pero lo que necesitas tener de manera
simultánea son los datos y las estructuras de las tablas, no esos índices.
No es necesario que tengas los mismos índices.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Daniel H. Villa" escribió en el mensaje
news:uS9ko$
Hola Salvador te explico:

Tenemos un sistema hecho en Visual FoxPro 7.0. Se pretende emigrar la BD
en SQL Server 2000. Para no alterar su funcionamiento en cuanto al codigo
y la estructura de las Tablas e Indices, estoy haciendo la conexión de la
BD SQL Server con programación FoxPro.

Como 1ra etapa se va trabajar con ambas BD la de FoxPro y la de SQL
Server, lo que estoy realizando es que cuando se haga una actualización o
se graben datos en la BD de FoxPro se actualicen tambien en la de SQL
Server. Ambas BD deben tener la misma información.

FoxPro maneja un tipo de Indices de Expresión que no encuentro en SQL
Server los cuales se aplican para hacer busquedas. Lo que quiero saber que
otra función aplicaria para SQL Server y que pueda trabajar sin ningun
problema de ambiguedad con los dos tipos de BDs.

Ya cuando este 100% que ambas BDs tengan la misma información, asi como
las busquedas, funcionamiento y procesos internos sean iguales, entonces
se trabajaria con la BD SQL Server por completo.

Espero que con lo que te plateo me puedas ayudar
Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

"Salvador Ramos" escribió en el
mensaje news:
Hola,

Y para qué necesitas crear esos índices ? tienes problemas de rendimiento
?

En FoxPro son necesarios, por ejemplo, para realizar ordenaciones por esa
expresión. En SQL server o cualquier motor relacional no es necesario,
simplemente se harían en caso de que querer mejorar el rendimiento de las
consultas que utilicen esas expresiones.

Explícanos que es lo que necesitas hacer exactamente, e intentaremos
darte una solución aplicada a SQL Server, que posiblemente no coincidirá
con la que has aplicado en FoxPro.

Un saludo
Salvador Ramos
Murcia - España

[Microsoft MVP SQL Server]
www.helpdna.net (información sobre SQL Server y .NET)


"Daniel H. Villa" escribió en el
mensaje news:e$
Hola:

sobre lo que dices:

una columna, es un indicio que no has normalizado adecuadamente el
esquema de tu base de datos. Deberías solucionar ese problema primero.




No es posible hacer cambios de origen.

La BD de FoxPro ya esta trabajando asi, la programación de FoxPro
REQUIERE, este tipo de expresiones.

Pienso que SQL Server debe tener algun tipo de función para manejar este
tipo de casos.

Si otra persona gentilmente me pudiera dar otra solución con gusto se lo
agradecere.

Gustavo de todas maneras gracias por tu opinión, pero no creo que esa
sea la solución.

Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°

"Gustavo Larriera [MVP]" escribió en el
mensaje news:
En SQL Server no se dispone de expresiones en los índices.

Desde el punto de vista formal, si estás necesitando indexar un
fragmento de una columna, es un indicio que no has normalizado
adecuadamente el esquema de tu base de datos. Deberías solucionar ese
problema primero.



Gustavo Larriera, MVP SQL
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga
ningun derecho / This posting is provided "AS IS" with no warranties,
and confers no rights.

"Daniel H. Villa" wrote in message
news:
Hola Grupo:

Estoy migrando una Base de Datos hecha en Visual FoxPro 7.0 a SQL
Server 2000.

A esta BD SQL le estoy creando los indices, sin embargo necesito crear
Indices de Tipo Expresión, por Ejm:

En la BD de FoxPro Tengo una Tabla que se llama:

c_Medios y tiene estos campos

1) c_medio
2) c_nommedio
3) n_clave
4) b_habilita

Los indices que tiene son de tipo "Candidato" y "Normal". Mi duda es
a) como definiria el tipo Candidato.
y otra es que b) tiene un indice de tipo Expresión y la expresión esta
asi: SUBSTR(c_medio,1,5).

No se como definirla o si el SQL Server maneja este tipo de Indices.
Ojala y alguien me pueda ayudar.

Salu2 Cordiales

¸,ø¤º°`°º¤ø,¸ L.I. Daniel H. Villa°`°º¤ø,¸¸,ø¤º°


















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