SQL Server - procedimientos almacenados dinamicamente

 
Vista:

procedimientos almacenados dinamicamente

Publicado por juanita (14 intervenciones) el 23/12/2008 13:41:16
quiero que me genere automaticamente los procedimientos almacenados de cada tabla de forma dinamica.. alguien lo sabe?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:procedimientos almacenados dinamicamente

Publicado por Isaias (3308 intervenciones) el 24/12/2008 01:23:46
Los procedimientos los tienes que "teclear", hay software de terceros que te generan los de actualizacion (INSERT, UPDATE y DELETE) en base a la descripcion de la tabla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedimientos almacenados dinamicamente

Publicado por juanita (14 intervenciones) el 24/12/2008 11:51:47
Querido Isaias!!

Te dedicas a esto? porque no solucionas ninguna duda con tus respuestas e?

Vamos a ver, Llevo muchos años con Oracle, y he echo muchos procedimientos, packages, clases, collectores.. conozco el tema. Luego eso de q hay teclear ... te has quedado calvo, no? Y la pregunta es q software de terceros hay q utilizar para q realice los procedimientos almacenados automaticamente?? (igual esq no habia formulau la pregunta bien), ya se q existen pero cuales son?
te agradeceria q si los conoces me los digas y sino pues nada

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedimientos almacenados dinamicamente

Publicado por Isaias (3308 intervenciones) el 24/12/2008 17:09:58
Juanita

Antes que nada, te deseo una feliz navida y mejor año 2009.

Tal vez tu pregunta no este orientada a SQL SERVER, que es el foro en el que estas.

¿Es de ORACLE?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de roger

RE:procedimientos almacenados dinamicamente

Publicado por roger (173 intervenciones) el 26/12/2008 19:26:29
busca mygeneration, es una herramienta de generacion de codigo no solo sql, sino muchos otros, sin duda te debe servir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedimientos almacenados dinamicamente

Publicado por Mau (67 intervenciones) el 29/12/2008 06:00:25
Hace un par de semanas tuve que hacer triggers en SQL Server para unas 300 tablas, si lo hubiera hecho a mano no hubiera podido brindar del dolor :=)

Es cierto que hay herramientas de terceros que hacen este trabajo, pero suele suceder que encriptan el código, así que en SQL Server como en Oracle es posible hacer referencia a tablas de sistema y luego utilizar cursores para generar código dinámicamente.

Como se ve que sabes de Oracle, te paso que tablas son las equivalentes entre ambos manejadores de bases de datos.

TABS
sysobjects

COLS
syscolumns, systypes

Prueba el siguiente query y te va a mostrar toda la información de tus tablas y campos:
select *
from sysobjects t
join syscolumns c on c.id = t.id
join systypes st on st.xtype = c.xtype
where t.xtype = 'U'

Otra opción más cómoda pero que muestra menos información, es utilizar las vistas que ya integra de manera nativa SQL Server:
select *
from INFORMATION_SCHEMA.TABLES

select *
from INFORMATION_SCHEMA.COLUMNS

Espero que te haya podido ayudar. Saludos y felices fiestas!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedimientos almacenados dinamicamente

Publicado por juanita (14 intervenciones) el 29/12/2008 10:26:32
Muchas gracias por las tablas equivalentes con oracle, muchas gracias han sido de gran ayuda!

un saludo y feliz 2009
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedimientos almacenados dinamicamente

Publicado por Isaias (3308 intervenciones) el 30/12/2008 07:48:57
Mau

Perdona mi ignorancia, pero ¿Que tienen que ver las tablas de sistema y las vistas del mismo, en construir LOS INSERT'S, DELETE'S, UPDATE'S de las tablas?

¿Podrias darnos un pequeño ejemplo de como construir los mismos tomando como base las tablas y vistas que mencionas?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedimientos almacenados dinamicamente

Publicado por Mau (67 intervenciones) el 30/12/2008 16:59:42
Claro que si mi estimado Isaías, esto podría ser un comienzo. Evidentemente, pensando que la lógica de los sp sea de lo más simple:

ALTER FUNCTION DBO.FN_CREASP_INSERT(@NOMBRE_TABLA VARCHAR(100))
RETURNS VARCHAR(4000)
AS
BEGIN
DECLARE @SQL VARCHAR(4000);

SELECT @SQL = 'CREATE PROCEDURE SP_INSERT_' + @NOMBRE_TABLA
+ CHAR(10) + CHAR(13)
SELECT @SQL = @SQL + '@' + COLUMN_NAME + ' '
+ DATA_TYPE
+ CASE WHEN CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(50)) IS NOT NULL THEN '(' + CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR(50)) + ')'ELSE '' END
+ ','
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @NOMBRE_TABLA;

SELECT @SQL = LEFT(@SQL,LEN(@SQL)-1);
SELECT @SQL = @SQL + CHAR(10) + CHAR(13);
SELECT @SQL = @SQL + ' AS '
SELECT @SQL = @SQL + CHAR(10) + CHAR(13);
SELECT @SQL = @SQL + 'INSERT INTO ' + @NOMBRE_TABLA + '('

RETURN @SQL;
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedimientos almacenados dinamicamente

Publicado por Isaias (3308 intervenciones) el 30/12/2008 22:16:07
Si no mal entiendo, Roger y tu servidor, entendimos que Juanita lo que busca es crear los INSERT's (UPDATE's y DELETE's) de los DATOS.

Algo como:

INSERT INTO sutabla (col1, col2, col3, colx) VALUES ('Mauricio', 'Sistemas', 2000, 'x25L54')

TODOS....y que los datos fueran inventados o algo por el estilo.

Revisando tu query, seria bueno aclarar que si el maximo de tu query rebasara los 4000 caracteres, no funcionara.

Feliz 2009
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedimientos almacenados dinamicamente

Publicado por Mau (67 intervenciones) el 31/12/2008 20:57:52
Que tal Isaías,

No sé si tu problema sea de comunicación, de comprensión de lectura o simplemente, que te cierras a tu pequeño mundo y cuando una respuesta se sale de "tus" parámetros, entonces la evalúas como inválida.

Mira, la pregunta original de Juanita era saber como crear automáticamente procedimientos almacenados. En ese sentido, la respuesta que le di es correcta, no terminé de hacer la función por falta de tiempo, pero creo que es cuestión de tener algo de imaginación y hacer lo que falta.

En cuanto al tamaño del varchar que devuelve, por Dios, si tu eres un experto en SQL Server, como es que me haces una pregunta tan absurda? Pues manito, cámbiale en lugar de VARCHAR(4000) por VARCHAR(MAX) que te acepta hasta 2 Gb de texto, lo cual es más que suficiente.

Yo lo que veo es que con tu actitud no ayudas mucho y pierdes recursos en tonterías y de paso, haces que las demás personas también pierdan tiempo contestando tarugadas como esta. La gente que viene preguntando en este tipo de foros es porque realmente no sabe como hacerlo, no necesitan que San Isaías los venga a regañar, ellos quieren una respuesta a sus dudas.

Es lamentable tu actitud de vehemencia que refleja alguna patología que desconozco, pero no ayuda al progreso.

Como me solicitaste una explicación extensiva para Juanita y Roger, pues le copio este correo, aunque seguramente les dará pereza leerlo. Te recomiendo que seas más asertivo y lograrás más en lugar de estar jodiendo a la gente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:procedimientos almacenados dinamicamente

Publicado por Isaias (3308 intervenciones) el 07/01/2009 22:40:32
Hola Mau

Mi respuesta te la di por correo, ya que asi me fue enviada, aunque una de las reglas de los foros, es tratar todo esto, precisamente en los foros.

Si la peticion fue CREAR AUTOMATICAMENTE (¿?) los store procedure de cada una de las tablas, supongo, que son de INSERT, DELETE, SELECT y UPDATE.

Entonces, no he dicho nada.

Saludos y feliz 2009
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar