Utilizar índices en vistas no indexadas

01/07/2008 - 13:44 por Juan Diego Bueno | Informe spam
Buenas gente:

Ya he planteado una duda similar en un grupo de C#, pero como una parte
es tan específica del SGBD, la replanteo en este grupo.

Yo suelo utilizar vistas modificables que afectan a más de una tabla.
Suelen basarse en joins o en uniones, de forma que no las puedo crear
como indexadas.

.NET dispone de la clase SQLCommandbuilder que permite generar los
comandos de actualización, inserción y borrado para los adaptadores de
datos de forma rápida. Con el comando de inserción no hay problema,
pero sí con los de actualización y borrado. Todo ello se debe a que no
encuentra el campo o campos que debería/n de ejercer de clave
principal. Es más, creo que con sólo encontrar una restricción UNIQUE
funcionaría. El problema es que no encuentro cómo mostrar esa vista
como si fuera una tabla con sus claves. Ya he comentado por qué no
puedo utilizar vistas indexadas. ¿Alguna idea?

Saludos

http://www.moondance.es

Preguntas similare

Leer las respuestas

#1 Eduardo
01/07/2008 - 14:12 | Informe spam
Podrias personalizar el CB para ese caso especifico es decir indicar
explicitamente el comando o en su defecto indicar explicitamente en C#
cuales son las columnas que conforman la PK con la propiedad PrimaryKey del
datatable.

"Juan Diego Bueno" escribió en el mensaje
news:
Buenas gente:

Ya he planteado una duda similar en un grupo de C#, pero como una parte es
tan específica del SGBD, la replanteo en este grupo.

Yo suelo utilizar vistas modificables que afectan a más de una tabla.
Suelen basarse en joins o en uniones, de forma que no las puedo crear como
indexadas.

.NET dispone de la clase SQLCommandbuilder que permite generar los
comandos de actualización, inserción y borrado para los adaptadores de
datos de forma rápida. Con el comando de inserción no hay problema, pero
sí con los de actualización y borrado. Todo ello se debe a que no
encuentra el campo o campos que debería/n de ejercer de clave principal.
Es más, creo que con sólo encontrar una restricción UNIQUE funcionaría. El
problema es que no encuentro cómo mostrar esa vista como si fuera una
tabla con sus claves. Ya he comentado por qué no puedo utilizar vistas
indexadas. ¿Alguna idea?

Saludos

http://www.moondance.es


Respuesta Responder a este mensaje
#2 Juan Diego Bueno
01/07/2008 - 14:28 | Informe spam
Hola Eduardo:

En un mensaje anterior, Eduardo ha escrito :
Podrias personalizar el CB para ese caso especifico es decir indicar
explicitamente el comando



Bueno, más bien sería personalizar el dataadapter, ya que una vez que
obtengo los comandos del commandbuilder, la idea es llevarlos al
dataadapter y destruirlo. Así es como estoy haciendo ahora, pero quería
quitarme el trabajo de tener que generar los comandos a capón. Al menos
puedo aprovechar el insertcommand


o en su defecto indicar explicitamente en C# cuales
son las columnas que conforman la PK con la propiedad PrimaryKey del
datatable.



Esto lo he probado y no funciona. Es a nivel de datatable y por lo
visto, lo que necesito es a nivel de servidor de base de datos.

Un saludo

http://www.moondance.es
Respuesta Responder a este mensaje
#3 Penta
01/07/2008 - 19:30 | Informe spam
Estimado Juan Diego.
Por que rqazon no realiza las modificaciones directamente en las
tablas ?? porque querer hacelro en las vistas NO indexadas ??

Atte.
Penta.
Respuesta Responder a este mensaje
#4 Juan Diego Bueno
01/07/2008 - 19:46 | Informe spam
Hola Penta:

"Penta" escribió en el mensaje de
noticias:
Estimado Juan Diego.
Por que rqazon no realiza las modificaciones directamente en las
tablas ?? porque querer hacelro en las vistas NO indexadas ??



Pues es bien sencillo, porque lo hago todo con una sola operación sobre un
objeto (en este caso, la vista) en vez de hacerlo sobre varias tablas. Es lo
mismo que otra gente hace (supongo) con procedimientos almacenados. Tengo la
vista que agrupa aquellas tablas relacionadas y con ella muestro y modifico
los datos en las tablas. Es cómodo y bastante potente a mi juicio.

Saludos
Respuesta Responder a este mensaje
#5 Penta
01/07/2008 - 20:07 | Informe spam
Estimado Juan Diego.
Yo diria mas bien que solo es comodo, no hay duda, pero potente ?? no
creo, ya ves que son en vistas NO indexadas.

Atte.
Penta.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida