Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Insert de varias filas

Estas en el tema de Insert de varias filas en el foro de Bases de Datos General en Foros del Web. Buenas Tardes Foro! Les comento Yo tengo un Procedure Store al cual le envio como parametro el nombre de mi Base de Datos y el ...
  #1 (permalink)  
Antiguo 12/07/2017, 09:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 0
Insert de varias filas

Buenas Tardes Foro! Les comento

Yo tengo un Procedure Store al cual le envio como parametro el nombre de mi Base de Datos y el Esquema que utiliza (Estoy usando AdventureWorks).

Lo que necesito hacer es que cuando entra en el sp, luego de validar que la Base de Datos y el Esquema sean validos, me guarde en una nueva tabla, llamada "Resultados", las tablas que componen ese Esquema, Por Ejemplo:

DB | Schema | Table
Pepe | Empleados | Departamentos
Pepe | Empleados | Oficio
Pepe | Empleados | Proyectos


Nose si se logra entender lo que quiero, sino avisen y doy un mejor ejemplo!
  #2 (permalink)  
Antiguo 12/07/2017, 09:53
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Insert de varias filas

Podrias usar un query dinamico con los parametros y hacer la insercion en el procedure, algo como esto:


Código SQL:
Ver original
  1. CREATE PROCEDURE testing(@DATABASE Nvarchar(30), @s_name @Nvarchar(30))
  2. AS
  3. DECLARE @query Nvarchar(MAX)
  4. SET @query='
  5. insert into mi_tabla
  6. select *  from ' + @DATABASE + '.sys.tables where schema_name=' + CHAR(39) + @s_name + CHAR(39)
  7. sp_executesql @query
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 12/07/2017, 10:01
 
Fecha de Ingreso: febrero-2008
Mensajes: 65
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Insert de varias filas

Cita:
Iniciado por Libras Ver Mensaje
Podrias usar un query dinamico con los parametros y hacer la insercion en el procedure, algo como esto:


Código SQL:
Ver original
  1. CREATE PROCEDURE testing(@DATABASE Nvarchar(30), @s_name @Nvarchar(30))
  2. AS
  3. DECLARE @query Nvarchar(MAX)
  4. SET @query='
  5. insert into mi_tabla
  6. select *  from ' + @DATABASE + '.sys.tables where schema_name=' + CHAR(39) + @s_name + CHAR(39)
  7. sp_executesql @query
BUenisimo! Una consulta..al ejecutar sp_executesql @query estaria ejecutando esa linea de codigo verdad ? y esa linea de codigo insertaria en mi tabla "Resultados" todas las tablas que posee el esquema ?


Gracias por responder tan rapido en este y en la anterior que tuve dudas!
  #4 (permalink)  
Antiguo 12/07/2017, 10:10
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Insert de varias filas

Asi es, sp_executesql te ejecuta la sentencia que mandes, como vas a usar el nombre de la base como parametro es necesario usar un query dinamico :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: filas, insert, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:25.