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

creacion de un stored procedure que cree una tabla, inserte datos de dos tablas

Estas en el tema de creacion de un stored procedure que cree una tabla, inserte datos de dos tablas en el foro de SQL Server en Foros del Web. HOLA SOY NUEVA EN ESTO DE LOS FOROS PERO ES QUE ESTOY INTENTANDO CREAR UN STORED PROCEDURE EN SQL SERVER 2005 QUE CREE UNA TABLA, ...
  #1 (permalink)  
Antiguo 03/09/2008, 18:41
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
creacion de un stored procedure que cree una tabla, inserte datos de dos tablas

HOLA SOY NUEVA EN ESTO DE LOS FOROS PERO ES QUE ESTOY INTENTANDO CREAR UN STORED PROCEDURE EN SQL SERVER 2005 QUE CREE UNA TABLA, ADEMAS INSERTE DATOS PERO ESOS DATOS QUE VA A INSERTAR LOS INSERTARA DE UNA SENTENCIA SQL QUE TRAE DATOS DE DOS TABLAS QUE EXISTEN EN LA BD PERO ME DIJERON QUE CON UN CICLO WHILE PERO LA VERDAD QUEDE UN POCO PERDIDA
ESTO ES LO QUE HE ECHO

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go


ALTER PROCEDURE [dbo].[sp_funcion]
AS
BEGIN
SET NOCOUNT ON;
while exists( select A.cedula,A.nombre,A.direccion,B.valor
FROM Clientes A INNER JOIN compras B on B.cedula = A.cedula)
begin
CREATE TABLE [dbo].[nuevo](
[cedula] [int] NOT NULL,
[nombre] [varchar](50) COLLATE Modern_Spanish_CI_AS NULL,
[direccion] [varchar](50) COLLATE Modern_Spanish_CI_AS NULL,
[valor] [int] NULL,
CONSTRAINT [PK_nuevo] PRIMARY KEY CLUSTERED
(
[cedula] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

INSERT INTO [bdejercicio].[dbo].[nuevo]
([cedula]
,[nombre]
,[direccion]
,[valor])
select A.cedula,A.nombre,A.direccion,B.valor
FROM Clientes A INNER JOIN compras B on B.cedula = A.cedula
END
end


GRACIAS POR LAS AYUDAS
  #2 (permalink)  
Antiguo 04/09/2008, 07:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: creacion de un stored procedure que cree una tabla, inserte datos de dos t

¿Ya probo su store procedre?
  #3 (permalink)  
Antiguo 04/09/2008, 08:09
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: creacion de un stored procedure que cree una tabla, inserte datos de dos t

Buen dia a ambos!


con su permiso...


no si solo se va a insertar todo lo que traiga la consulta no se requiere el ciclo.

si se requiere generar la tabla en el sp, hay que comprobar que no exista, y solo si no existe se crea.

Despues solo se insertan los registros

Código:
ALTER PROCEDURE [dbo].[spInsertaInTableNuevo] 
AS
SET NOCOUNT ON;

--------------------------------------------------------
-- Verificar: si no existe la tabla, entonces se crea.
--------------------------------------------------------
If (select count(1) 
    from  information_schema.tables 
    where table_name = 'nuevo') = 0 
Begin
	CREATE TABLE [dbo].[nuevo](
	[cedula] [int] NOT NULL PRIMARY KEY CLUSTERED,
	[nombre] [varchar](50) COLLATE Modern_Spanish_CI_AS NULL,
	[direccion] [varchar](50) COLLATE Modern_Spanish_CI_AS NULL,
	[valor] [int] NULL)
End

-------------------------------------------------------------------------------
-- inserta los registros relacionados en tabla nuevo.
-------------------------------------------------------------------------------
INSERT INTO [bdejercicio].[dbo].[nuevo]
      ([cedula],[nombre] ,[direccion],[valor])
select A.cedula,A.nombre,A.direccion,B.valor 
FROM   Clientes A 
INNER JOIN 
       compras B 
on B.cedula = A.cedula 
go
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #4 (permalink)  
Antiguo 09/09/2008, 18:19
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: creacion de un stored procedure que cree una tabla, inserte datos de dos t

Cita:
Iniciado por Andres95 Ver Mensaje
Buen dia a ambos!


con su permiso...


no si solo se va a insertar todo lo que traiga la consulta no se requiere el ciclo.

si se requiere generar la tabla en el sp, hay que comprobar que no exista, y solo si no existe se crea.

Despues solo se insertan los registros

Código:
ALTER PROCEDURE [dbo].[spInsertaInTableNuevo] 
AS
SET NOCOUNT ON;

--------------------------------------------------------
-- Verificar: si no existe la tabla, entonces se crea.
--------------------------------------------------------
If (select count(1) 
    from  information_schema.tables 
    where table_name = 'nuevo') = 0 
Begin
	CREATE TABLE [dbo].[nuevo](
	[cedula] [int] NOT NULL PRIMARY KEY CLUSTERED,
	[nombre] [varchar](50) COLLATE Modern_Spanish_CI_AS NULL,
	[direccion] [varchar](50) COLLATE Modern_Spanish_CI_AS NULL,
	[valor] [int] NULL)
End

-------------------------------------------------------------------------------
-- inserta los registros relacionados en tabla nuevo.
-------------------------------------------------------------------------------
INSERT INTO [bdejercicio].[dbo].[nuevo]
      ([cedula],[nombre] ,[direccion],[valor])
select A.cedula,A.nombre,A.direccion,B.valor 
FROM   Clientes A 
INNER JOIN 
       compras B 
on B.cedula = A.cedula 
go
Saludos!
  #5 (permalink)  
Antiguo 09/09/2008, 18:25
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: creacion de un stored procedure que cree una tabla, inserte datos de dos t

si pero me dice que fue ejecutado correctamente pero en si no hace nada

pero si tu coges y seleccionas desde create table hasta el final ejecuta y inserta datos pero el stored procedure no y no se que es
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 20:23.