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

#1 Gustavo Larriera [MVP]
08/06/2006 - 04:09 | Informe spam
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
#2 Daniel H. Villa
08/06/2006 - 18:10 | Informe spam
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
#3 Salvador Ramos
08/06/2006 - 18:53 | Informe spam
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
#4 Daniel H. Villa
08/06/2006 - 19:20 | Informe spam
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
#5 Maxi
08/06/2006 - 20:28 | Informe spam
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
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida