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!