puedo crear una vista dentro de un Storeprocedure

05/03/2004 - 18:28 por Alfredo Reyna | Informe spam
Hola a todos ,tengo poco utilizando el sql, se como crear vista, como crear
procedimientos pero ahora quiero combinarlos por necescidad,, pero me bota
un error, en la linea de CREATE VIEW.
puedo hacer esto?? o alguna otra forma de hacerlo?

Gracias de antemano


CREATE PROCEDURE [BORRAFACTURAS_37]
@fini datetime,
@ffin datetime,
@div nvarchar (2)
AS

DROP TABLE TEMP
DROP VIEW v_facturas_37

select * into temp from facturas_31 where fecha_fac >= @fini and
fecha_fac<=@ffin and div=@div

CREATE VIEW v_facturas_37
as
select * from facturas_31 where div='37'
go

DELETE FROM v_facturas_37 WHERE no_fact IN (select no_fact FROM temp)

GO

Preguntas similare

Leer las respuestas

#1 Adrian D. Garcia
05/03/2004 - 18:42 | Informe spam
No puedes crear una vista asi como asi dentro de un procedimiento
almacenado. Eso si, puedes utilizar sentencias dinamicas de SQL para ello.
Fijate en los BOL el procedimiento almacenado "sp_executeSQL" y tambien
EXEC('<sentencias T-SQL>')

Saludos

Adrian D. Garcia
NDSoft
MCSD

"Alfredo Reyna" escribió en el mensaje
news:
Hola a todos ,tengo poco utilizando el sql, se como crear vista, como


crear
procedimientos pero ahora quiero combinarlos por necescidad,, pero me bota
un error, en la linea de CREATE VIEW.
puedo hacer esto?? o alguna otra forma de hacerlo?

Gracias de antemano


CREATE PROCEDURE [BORRAFACTURAS_37]
@fini datetime,
@ffin datetime,
@div nvarchar (2)
AS

DROP TABLE TEMP
DROP VIEW v_facturas_37

select * into temp from facturas_31 where fecha_fac >= @fini and
fecha_fac<=@ffin and div=@div

CREATE VIEW v_facturas_37
as
select * from facturas_31 where div='37'
go

DELETE FROM v_facturas_37 WHERE no_fact IN (select no_fact FROM temp)

GO


Respuesta Responder a este mensaje
#2 Pablo Salazar
05/03/2004 - 19:03 | Informe spam
Cambia esto a ver si te funciona.

exec ('CREATE VIEW v_facturas_37 as select * from facturas_31 where
div=''37'' ')



Gracias.

"Alfredo Reyna" wrote in message
news:
Hola a todos ,tengo poco utilizando el sql, se como crear vista, como


crear
procedimientos pero ahora quiero combinarlos por necescidad,, pero me bota
un error, en la linea de CREATE VIEW.
puedo hacer esto?? o alguna otra forma de hacerlo?

Gracias de antemano


CREATE PROCEDURE [BORRAFACTURAS_37]
@fini datetime,
@ffin datetime,
@div nvarchar (2)
AS

DROP TABLE TEMP
DROP VIEW v_facturas_37

select * into temp from facturas_31 where fecha_fac >= @fini and
fecha_fac<=@ffin and div=@div

CREATE VIEW v_facturas_37
as
select * from facturas_31 where div='37'
go

DELETE FROM v_facturas_37 WHERE no_fact IN (select no_fact FROM temp)

GO


Respuesta Responder a este mensaje
#3 Liliana Sorrentino
05/03/2004 - 19:20 | Informe spam
Hola Alfredo,
No me queda claro el objetivo de tu SP, pero creo que estás tratado de
borrar de la tabla facturas_37, los registros de la div 37 que no están en
un rango de fechas ingresado por parámetros.
Si es así, no es necesario que crees una tabla temporal ni una vista, es
suficiente con:

DELETE FROM facturas_37
WHERE div = 37 AND (fecha_fac < @fini OR fecha_fac > @ffin)

Saludos... Liliana.

"Alfredo Reyna" escribió en el mensaje
news:
Hola a todos ,tengo poco utilizando el sql, se como crear vista, como


crear
procedimientos pero ahora quiero combinarlos por necescidad,, pero me bota
un error, en la linea de CREATE VIEW.
puedo hacer esto?? o alguna otra forma de hacerlo?

Gracias de antemano


CREATE PROCEDURE [BORRAFACTURAS_37]
@fini datetime,
@ffin datetime,
@div nvarchar (2)
AS

DROP TABLE TEMP
DROP VIEW v_facturas_37

select * into temp from facturas_31 where fecha_fac >= @fini and
fecha_fac<=@ffin and div=@div

CREATE VIEW v_facturas_37
as
select * from facturas_31 where div='37'
go

DELETE FROM v_facturas_37 WHERE no_fact IN (select no_fact FROM temp)

GO


Respuesta Responder a este mensaje
#4 Maximiliano D. A.
05/03/2004 - 20:15 | Informe spam
Pregunto porque no usar DELETE para eso? para que haces tantos pasos? no se
si sabes pero detras de un DELETE podes poner SELECT !!

Creo que te estas complicando mucho



Salu2
Maxi
Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET
[Maxi_accotto[arroba]speedy[punto]com[punto]ar
MSN:


"Alfredo Reyna" escribió en el mensaje
news:
Hola a todos ,tengo poco utilizando el sql, se como crear vista, como


crear
procedimientos pero ahora quiero combinarlos por necescidad,, pero me bota
un error, en la linea de CREATE VIEW.
puedo hacer esto?? o alguna otra forma de hacerlo?

Gracias de antemano


CREATE PROCEDURE [BORRAFACTURAS_37]
@fini datetime,
@ffin datetime,
@div nvarchar (2)
AS

DROP TABLE TEMP
DROP VIEW v_facturas_37

select * into temp from facturas_31 where fecha_fac >= @fini and
fecha_fac<=@ffin and div=@div

CREATE VIEW v_facturas_37
as
select * from facturas_31 where div='37'
go

DELETE FROM v_facturas_37 WHERE no_fact IN (select no_fact FROM temp)

GO







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.593 / Virus Database: 376 - Release Date: 21/02/2004
Respuesta Responder a este mensaje
#5 Alfredo Reyna
05/03/2004 - 20:36 | Informe spam
Gracias

lo resolvi con con la solucion de pablo salazar

Liliana esque la informacion esta en una misma tabla, serparada por
division, pero algunas de estas divisiones son generadas automaticas (37)
por la 31, cuando yo quiero eliminar algunas de la 31 debo de eliminar las
que se generaron automaticamente. necesito la vista como una tabla
auxiliar...

gracias a todos

Saludos y gracias a todos..
"Alfredo Reyna" wrote in message
news:
Hola a todos ,tengo poco utilizando el sql, se como crear vista, como


crear
procedimientos pero ahora quiero combinarlos por necescidad,, pero me bota
un error, en la linea de CREATE VIEW.
puedo hacer esto?? o alguna otra forma de hacerlo?

Gracias de antemano


CREATE PROCEDURE [BORRAFACTURAS_37]
@fini datetime,
@ffin datetime,
@div nvarchar (2)
AS

DROP TABLE TEMP
DROP VIEW v_facturas_37

select * into temp from facturas_31 where fecha_fac >= @fini and
fecha_fac<=@ffin and div=@div

CREATE VIEW v_facturas_37
as
select * from facturas_31 where div='37'
go

DELETE FROM v_facturas_37 WHERE no_fact IN (select no_fact FROM temp)

GO


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida