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

Llenar una tabla con un procedimeinto almacenado

Estas en el tema de Llenar una tabla con un procedimeinto almacenado en el foro de SQL Server en Foros del Web. Hola Todos: Tengo un procedimiento almacenado el cual me llena una tabla temporal, y me funciona perfectamente, me piden crear una tabla con los campos ...
  #1 (permalink)  
Antiguo 18/07/2012, 10:09
 
Fecha de Ingreso: julio-2012
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Llenar una tabla con un procedimeinto almacenado

Hola Todos:

Tengo un procedimiento almacenado el cual me llena una tabla temporal, y me funciona perfectamente, me piden crear una tabla con los campos que aparecen en la temporal y que el procedimeinto almacenado me llene esa tabla, cree una base de datos llamada servers y en ella cree una tabla llamada uat, la verdad no se como llenar esa tabla uat desde el procedimeinto almacenado, adjunto el procedimiento almacenado para que me ayuden a modificarlo, tambien adjunto la creacion de la tabla, la tabla tiene dos campos que son el nombre del servidor y la fecha que estan setiados, no se como hacer para que me aprezcan en la tabla uat, por favor sino me entendieron la descripcion por favor preguntan para hacer mas claridad


CREACION PROCEDIMIENTO

CREATE PROCEDURE uat

AS

BEGIN

create table #temp1 (loginname varchar(200),--denylogin varchar(20),haaccess varchar(20),

sysadmin varchar(20),securityadmin varchar(20),serveradmin varchar(20),

setupadmin varchar(20),processadmin varchar(20),diskadmin varchar(20),dbcreator varchar(20), bulkadmin varchar(20), ROLES varchar(400)

)

insert into #temp1

select convert (varchar (200),loginname) as loginname, convert(varchar(20),sysadmin ) as sysadmin,

convert(varchar(20),securityadmin ) as securityadmin,convert(varchar(20),serveradmin ) as serveradmin,

convert(varchar(20),setupadmin ) as setupadmin , convert(varchar(20),processadmin ) as processadmin ,

convert(varchar(20),diskadmin ) as diskadmin,convert(varchar(20), dbcreator ) as dbcreator,

convert(varchar(20), bulkadmin ) as bulkadmin,''

from syslogins

------------------------------------

update #temp1 set sysadmin='sysadmin' where sysadmin='1'

update #temp1 set sysadmin='' where sysadmin='0'

--

update #temp1 set securityadmin='securityadmin'where securityadmin='1'

update #temp1 set securityadmin='' where securityadmin='0'

--

update #temp1 set serveradmin='serveradmin'where serveradmin='1'

update #temp1 set serveradmin='' where serveradmin='0'

--

update #temp1 set setupadmin='setupadmin'where setupadmin='1'

update #temp1 set setupadmin='' where setupadmin='0'

--

update #temp1 set processadmin='processadmin'where processadmin='1'

update #temp1 set processadmin='' where processadmin='0'

--

update #temp1 set diskadmin='diskadmin'where diskadmin='1'

update #temp1 set diskadmin='' where diskadmin='0'

--

update #temp1 set dbcreator='dbcreator'where dbcreator='1'

update #temp1 set dbcreator='' where dbcreator='0'

--

update #temp1 set bulkadmin='bulkadmin'where bulkadmin='1'

update #temp1 set bulkadmin='' where bulkadmin='0'

--

update #temp1

set ROLES= sysadmin + ','+ securityadmin + ','+ serveradmin + ','+ setupadmin + ','+ processadmin + ','+ diskadmin

+ ','+ dbcreator+ ','+ bulkadmin

--

update #temp1

set ROLES =replace(ROLES,',,','')

update #temp1

set ROLES =''

where ROLES =','


update #temp1

set ROLES ='public'

where roles =''


update #temp1

set ROLES =substring(roles,2,len(roles))

where substring(roles,len(roles)-len(roles),2) =','


update #temp1

set roles = substring(roles,1,len(roles)-1)

where substring(roles,len(roles),1)=','


select cliente='TELEFONICA', plataforma='MICROSOFT SQL SERVER', convert(varchar(100), serverproperty('servername')) as instancia ,Loginname,

case

when loginname in (

'sa',

'AVIANCA\MSSQL2K',

'Builtin\administrators')

OR loginname like '%SQLServer2%'

OR loginname like '%##MS%'

OR loginname like '%NT AUTHORITY%'

then 'Usuario del sistema'

else 'Usuario Personal' end as Tipo_usuario,


case

when loginname in (

'sa',

'AVIANCA\MSSQL2K',

'AVIANCA\G SQLADMINS',

'LATAM\grupo adm sql server',

'TELECOM\Grupo Bases datos IBM',

'Builtin\administrators')

OR loginname like '%SQLServer2%'

OR loginname like '%##MS%'

OR loginname like '%NT AUTHORITY%'

then 'IBM'

else 'TELEFONICA' end as owner1,


case

when loginname in (

'sa',

'AVIANCA\MSSQL2K',

'AVIANCA\G SQLADMINS',

'LATAM\grupo adm sql server',

'TELECOM\Grupo Bases datos IBM',

'Builtin\administrators')

OR loginname like '%SQLServer2%'

OR loginname like '%##MS%'

OR loginname like '%NT AUTHORITY%'

then 'JAVIER ANDRES RUEDA'

else 'TELEFONICA' end as ownername,



case

when loginname in (

'sa',

'AVIANCA\MSSQL2K',

'AVIANCA\G SQLADMINS',

'LATAM\grupo adm sql server',

'TELECOM\Grupo Bases datos IBM',

'Builtin\administrators')

OR loginname like '%SQLServer2%'

OR loginname like '%##MS%'

OR loginname like '%NT AUTHORITY%'

then 'D72714'

else 'NULL' end as ownercod,


Roles, Country='661' ,

getdate() as fecha

from #temp1

drop table #temp1

END

GO

************************************************** ************************************************** **************

CREACION DE LA TABLA UAT

USE [Servers]
GO
/****** Object: Table [dbo].[Repor_Uat] Script Date: 07/17/2012 15:10:06 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Repor_Uat](
[Contador] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[Cliente] [varchar](50) NULL,
[Plataforma] [varchar](50) NULL,
[Instancia] [varchar](50) NULL,
[Loginname] [varchar](50) NULL,
[Tipo_Usuario] [varchar](50) NULL,
[Owner1] [varchar](50) NULL,
[Ownwercod] [varchar](50) NULL,
[Roles] [varchar](50) NULL,
[Country] [numeric](18, 0) NULL,
[Fecha] [datetime] NULL
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
  #2 (permalink)  
Antiguo 18/07/2012, 10:11
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: Llenar una tabla con un procedimeinto almacenado

y si en lugar de usar #temp en tu procedure usas tu tabla normal no funciona??? digo ;)

o si no aqui puede quedar tu insert
CREATE PROCEDURE uat

AS

BEGIN
codigo
.
.
.
.
.

insert into new_table
select * from #temp1
drop table #temp1
end


saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 18/07/2012, 11:00
 
Fecha de Ingreso: julio-2012
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Llenar una tabla con un procedimeinto almacenado

No me funciona ya realice esa labor, nose que mas se te ocurre

gracias
  #4 (permalink)  
Antiguo 18/07/2012, 11:51
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: Llenar una tabla con un procedimeinto almacenado

porque no funciona? creo que tu procedure regresa una tabla no? como mandas llamar a tu procedure? has intentado en lugar de hacerlo con un procedure hacer una funcion y nada mas hacer un

insert into tabla
select * from function


saludos!!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 18/07/2012, 13:32
 
Fecha de Ingreso: julio-2012
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Llenar una tabla con un procedimeinto almacenado

Mira la verdad no entiendo mucho de el tema, puedo pedirte el favor que de acuerdo al procedimeinto que existe me ayudas a genrar uno con la tala uat
  #6 (permalink)  
Antiguo 19/07/2012, 08:18
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: Llenar una tabla con un procedimeinto almacenado

ok vamos a hacerlo de esa manera.....
Código SQL:
Ver original
  1. CREATE TABLE test_1
  2. (
  3. id INT
  4. )
  5.  
  6. INSERT INTO test_1 VALUES (1)
  7. INSERT INTO test_1 VALUES (2)
  8. INSERT INTO test_1 VALUES (3)
  9. INSERT INTO test_1 VALUES (4)
  10.  
  11. CREATE PROCEDURE mi_proc
  12. AS
  13. SELECT 5
  14. UNION
  15. SELECT 6
  16.  
  17. INSERT test_1 (id)
  18. EXEC dbo.mi_proc
  19.  
  20. SELECT * FROM test_1

si observas se esta insertando en la tabla de test_1 los valores que regresa el procedure 5 y 6 :) que es lo que necesitas que se inserten los valores que regresa el procedure en una tabla no?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 19/07/2012, 09:24
 
Fecha de Ingreso: julio-2012
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Llenar una tabla con un procedimeinto almacenado

Hola, gracias por tu ayuda, te pido el ultimo favor, tu me podrias ayudar armar mi procedimeinto con todo todo lo que solicite al comienzo, espero me entiendas, el tema es muy complejo para mi
Gracias
  #8 (permalink)  
Antiguo 19/07/2012, 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: Llenar una tabla con un procedimeinto almacenado

Cita:
Iniciado por dennis28 Ver Mensaje
Hola, gracias por tu ayuda, te pido el ultimo favor, tu me podrias ayudar armar mi procedimeinto con todo todo lo que solicite al comienzo, espero me entiendas, el tema es muy complejo para mi
Gracias
Muy complicado para ti?? Nadie dijo que la vida era sencilla mi amiga...ya tienes las herramientas y hasta un ejemplo para atacar tu problema, ahora dices que tienes que llenar una tabla llamada uat con un procedure hasta ahi entendido, pero tu tabla uat tiene mas campos que el procedure(campos calculados) y no has explicado que son esos campos, veo que tu procedure saca datos de una tabla syslogins, pero no has dado ningun ejemplo de esos datos, ni de que quieres obtener, realizar un procedure que inserte a una tabla con lo que te dije lo puedes hacer, si quieres que te haga el trabajo (de "favor" claro esta jejejeje ) pongamonos de acuerdo en el "por favor" ($$$$$)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #9 (permalink)  
Antiguo 19/07/2012, 13:28
 
Fecha de Ingreso: julio-2012
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Llenar una tabla con un procedimeinto almacenado

ok.. dime que debi hacer para que me lo desarolles segun requrimiento
  #10 (permalink)  
Antiguo 19/07/2012, 14:34
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: Llenar una tabla con un procedimeinto almacenado

dame los datos de la tabla syslogins(un ejemplo no todos los datos), y la descripcion de lo que quieres obtener al final:

[Contador] [numeric](18, 0) IDENTITY(1,1) NOT NULL, (id tabla)
[Cliente] [varchar](50) NULL, (nombre_cliente o que se yo)
[Plataforma] [varchar](50) NULL,...
[Instancia] [varchar](50) NULL,...
[Loginname] [varchar](50) NULL,...
[Tipo_Usuario] [varchar](50) NULL,..
[Owner1] [varchar](50) NULL,...
[Ownwercod] [varchar](50) NULL,..
[Roles] [varchar](50) NULL,...
[Country] [numeric](18, 0) NULL,...
[Fecha] [datetime] NULL....


y si le adjuntas un deposito a mi cuenta bancaria que mejor :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #11 (permalink)  
Antiguo 23/07/2012, 07:57
 
Fecha de Ingreso: julio-2012
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Llenar una tabla con un procedimeinto almacenado

hola buenos dias

De la tabla syslongins , estos son los campos

insert into #temp1

select convert (varchar (200),loginname) as loginname, convert(varchar(20),sysadmin ) as sysadmin,

convert(varchar(20),securityadmin ) as securityadmin,convert(varchar(20),serveradmin ) as serveradmin,

convert(varchar(20),setupadmin ) as setupadmin , convert(varchar(20),processadmin ) as processadmin ,

convert(varchar(20),diskadmin ) as diskadmin,convert(varchar(20), dbcreator ) as dbcreator,

convert(varchar(20), bulkadmin ) as bulkadmin,''

from syslogins

Necesito poder colocar esa informacion en la tabla nueva que cree que se llama Repor_Uat

Si tu me haces el favor de revisar la solicitud inicial encontraras todo el requerimiento

Gracias
  #12 (permalink)  
Antiguo 23/07/2012, 08:07
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: Llenar una tabla con un procedimeinto almacenado

de nuevo me faltan datos para sacar lo que necesitas, cuando te digo un ejemplo de tus datos quisiera que me dieras el "contenido" de la tabla syslogins..
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #13 (permalink)  
Antiguo 23/07/2012, 09:36
 
Fecha de Ingreso: julio-2012
Mensajes: 7
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Llenar una tabla con un procedimeinto almacenado

Hola, te adjunto el reporte con los campos de la tabla syslogins


loginname sa ##MS_SQLResourceSigningCertificate## ##MS_SQLReplicationSigningCertificate## ##MS_SQLAuthenticatorCertificate## NT AUTHORITY\SYSTEM SERVER508\SQLServer2005MSSQLUser$SERVER508$MSSQLSE RVER SERVER508\SQLServer2005SQLAgentUser$SERVER508$MSSQ LSERVER SERVER508\SQLServer2005MSFTEUser$SERVER508$MSSQLSE RVER NT AUTHORITY\NETWORK SERVICE

sysadmin 1 0 0 0 1 1 1 0 0

securityadmin 0 0 0 0 0 0 0 0 0

serveradmin 0 0 0 0 0 0 0 0 0
setupadmin 0 0 0 0 0 0 0 0 0
processadmin 0 0 0 0 0 0 0 0 0
diskadmin 0 0 0 0 0 0 0 0 0
dbcreator 0 0 0 0 0 0 0 0 0
bulkadmin 0 0 0 0 0 0 0 0 0

Los campos con los datos no se que mas hace falta, si lo deseas medas tucorreo y te escribo peronalmente

Gracias

Etiquetas: procedimiento
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 02:22.