Mantenedor de Tablas

06/11/2007 - 22:37 por Penta | Informe spam
Estimados.
Utilizo SQL 2000 SP4
Tengo el siguiente dilema:

Supongamos que tengo la tabla A y la tabla B.
Tengo procedimeinto que hacen Insert, Update y Delete

Al procedimiento le paso como parametro el nombre de la tabla pero
esto me lleva a ejecutarlo con SQL Dinamico y quiero evitarlo, existe
alguna manera de hacerlo ?? es decir usar un mismo SP para varias
tablas y lo unico que cambia es el nombre de la tabla ??

Gracias.
Penta.

Preguntas similare

Leer las respuestas

#1 Ele
07/11/2007 - 02:41 | Informe spam
Hola no entendi muy bien lo que tratas de hacer, pero si ya sabes los campos
y las tablas puedes hacer un procedimiento por cada tabla y ponerle como
parametro el tipo de comando (p.ejem.1=insert, 2= update, 3= delete) o si lo
que deseas es usar el mismo procedimiento para cualquier tabla, entonces
puedes usar una condicion asi: If @NomTabla Like 'mitablaA' Insert mitablaA
(IdTabla) Values (@IdTabla) donde @NomTabla es el parametro donde se
pasa el nombre de la tabla ( para mi gusto esto ultimo es muy complicado a
la hora de hacer mantenimiento)

"Penta" escribió en el mensaje
news:
Estimados.
Utilizo SQL 2000 SP4
Tengo el siguiente dilema:

Supongamos que tengo la tabla A y la tabla B.
Tengo procedimeinto que hacen Insert, Update y Delete

Al procedimiento le paso como parametro el nombre de la tabla pero
esto me lleva a ejecutarlo con SQL Dinamico y quiero evitarlo, existe
alguna manera de hacerlo ?? es decir usar un mismo SP para varias
tablas y lo unico que cambia es el nombre de la tabla ??

Gracias.
Penta.

Respuesta Responder a este mensaje
#2 jcpc91
07/11/2007 - 02:50 | Informe spam
yo no veo como imagínate un procedimiento ke sea un select

CREATE PROCEDURE Miprocedimiento
@MITABLA NVARCHAR(50)
AS
SELECT * FROM @MITABLA

da un error
Msg 137, Level 15, State 2, Procedure Miprocedimiento, Line 9
Debe declarar la variable '@MITABLA'.


talveez otro ke sepa más conozca un truco porlo menos yo no lo veo ke
se pueda ademas no creo ke sea recomendable te pueden inyectar código
sql
Respuesta Responder a este mensaje
#3 Carlos Sacristan
07/11/2007 - 10:08 | Informe spam
No, no hay forma de evitarlo. La única solución a lo que buscas es sql
dinámico, y ciertamente no hay diferencia entre tener el procedimiento
almacenado que comentas o enviar la sentencia DML directamente.

"Caminar sobre el agua y desarrollar software a partir de unas
especificaciones es fácil. si ambas están congeladas."
Edward V. Berard, ingeniero informático

http://blogs.solidq.com/es/elrincondeldba

"Penta" escribió en el mensaje
news:
Estimados.
Utilizo SQL 2000 SP4
Tengo el siguiente dilema:

Supongamos que tengo la tabla A y la tabla B.
Tengo procedimeinto que hacen Insert, Update y Delete

Al procedimiento le paso como parametro el nombre de la tabla pero
esto me lleva a ejecutarlo con SQL Dinamico y quiero evitarlo, existe
alguna manera de hacerlo ?? es decir usar un mismo SP para varias
tablas y lo unico que cambia es el nombre de la tabla ??

Gracias.
Penta.

Respuesta Responder a este mensaje
#4 Penta
07/11/2007 - 14:16 | Informe spam
Hola Carlos.
Cuando dices enviar la sentencia DML directamente es algo asi como
ejecutar la consulta del lado del cliente ??

Me imaginaba que no habia otra solucion, actualmente usamos dinamico
ya que le dimos varias vueltas y no hubo caso de sacarselo de encima :
(

Gracias.
Penta.
Respuesta Responder a este mensaje
#5 Alfredo Novoa
07/11/2007 - 14:23 | Informe spam
On Wed, 07 Nov 2007 05:16:23 -0800, Penta
wrote:

Hola Carlos.
Cuando dices enviar la sentencia DML directamente es algo asi como
ejecutar la consulta del lado del cliente ??

Me imaginaba que no habia otra solucion, actualmente usamos dinamico
ya que le dimos varias vueltas y no hubo caso de sacarselo de encima :



Ya de paso puedes aprovechar para borrar todos los SP que te sobran
:-)


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