Como crear una vista desde un Store Procedure

11/01/2005 - 00:13 por Jose Lopez | Informe spam
Lo que intento es hacer una vista en base a algunas condiciones que manejo
desde un Store Procedure.
Me da un error en el momento de la intrccion Create view dentro del store
Procedure.
alguna idea?
Gracias.

Preguntas similare

Leer las respuestas

#1 ulises
11/01/2005 - 13:12 | Informe spam
No puedes usar CREATE VIEW dentro de un procedimiento
almacenado a menos que uses sql dinámico, algo como :

create procedure pr_authors
as
declare @sql nvarchar(1000)
set @sql = 'create view vi_pubs as select * from
pubs.dbo.authors'
exec sp_executesql @sql

Saludos,
Ulises
PD. Ojo con la inyección de código ...

Lo que intento es hacer una vista en base a algunas


condiciones que manejo
desde un Store Procedure.
Me da un error en el momento de la intrccion Create view


dentro del store
Procedure.
alguna idea?
Gracias.
.

Respuesta Responder a este mensaje
#2 Paulino Padial
11/01/2005 - 13:41 | Informe spam
crear una vista dentro de un stored procedure? no hijo no...
create procedure pepe as
create view asfasdfadsf as select * from as2usos_v2
eso no se puede hacer, dentro de un procedimiento almacenado solo pueden ir
sentencias de tipo DML, no DDL, ni DCL.

podrias usar sql dinamico, pero amos, yo estoy algo en contra, mira este
ejemplo:
use Northwind
create procedure pepe as
declare @a nvarchar(2000)
set @a = 'create view prueba as select * from Orders'
exec sp_sqlexec @a
select * from Orders

__________________________________________

Paulino Padial López
Murcia - España

Microsoft SQL-Server Administrator.
Microsoft Certified Solution Developer
Microsoft Certified Trainer
Oracle Certified Asociate
__________________________________________
"Jose Lopez" escribió en el mensaje
news:
Lo que intento es hacer una vista en base a algunas condiciones que manejo
desde un Store Procedure.
Me da un error en el momento de la intrccion Create view dentro del store
Procedure.
alguna idea?
Gracias.
Respuesta Responder a este mensaje
#3 Paulino Padial
11/01/2005 - 13:54 | Informe spam
jaja contestaste tu antes, mientras yo hacia miraba los grupos ! :)

__________________________________________

Paulino Padial López
Murcia - España

Microsoft SQL-Server Administrator.
Microsoft Certified Solution Developer
Microsoft Certified Trainer
Oracle Certified Asociate
__________________________________________
"ulises" escribió en el mensaje
news:1cdb01c4f7d6$d4524540$
No puedes usar CREATE VIEW dentro de un procedimiento
almacenado a menos que uses sql dinámico, algo como :

create procedure pr_authors
as
declare @sql nvarchar(1000)
set @sql = 'create view vi_pubs as select * from
pubs.dbo.authors'
exec sp_executesql @sql

Saludos,
Ulises
PD. Ojo con la inyección de código ...

Lo que intento es hacer una vista en base a algunas


condiciones que manejo
desde un Store Procedure.
Me da un error en el momento de la intrccion Create view


dentro del store
Procedure.
alguna idea?
Gracias.
.

Respuesta Responder a este mensaje
#4 ulises
11/01/2005 - 14:08 | Informe spam
Y llegamos casi a la misma respuesta :) ... aunque te
comento que si son permitidas sentencias DDL en los
procedimientos almacenados (como CREATE TABLE p.e), el
problema principal es que por definición algunas sentencias
como CREATE VIEW, CREATE PROCEDURE, SET SHOWPLAN_ALL deben
ser la primera sentencia en el batch de comandos y por lo
tanto no los identifica cuando se encuentran dentro del
cuerpo de un procedimiento.

Saludos,
Ulises

jaja contestaste tu antes, mientras yo hacia miraba los


grupos ! :)

__________________________________________

Paulino Padial López
Murcia - España

Microsoft SQL-Server Administrator.
Microsoft Certified Solution Developer
Microsoft Certified Trainer
Oracle Certified Asociate
__________________________________________
"ulises" escribió en el mensaje
news:1cdb01c4f7d6$d4524540$
No puedes usar CREATE VIEW dentro de un procedimiento
almacenado a menos que uses sql dinámico, algo como :

create procedure pr_authors
as
declare @sql nvarchar(1000)
set @sql = 'create view vi_pubs as select * from
pubs.dbo.authors'
exec sp_executesql @sql

Saludos,
Ulises
PD. Ojo con la inyección de código ...

Lo que intento es hacer una vista en base a algunas


condiciones que manejo
desde un Store Procedure.
Me da un error en el momento de la intrccion Create view


dentro del store
Procedure.
alguna idea?
Gracias.
.





.

Respuesta Responder a este mensaje
#5 Paulino Padial
12/01/2005 - 16:56 | Informe spam
si, tiene sentido :) asias

__________________________________________

Paulino Padial López
Murcia - España

Microsoft SQL-Server Administrator.
Microsoft Certified Solution Developer
Microsoft Certified Trainer
Oracle Certified Asociate
__________________________________________
"ulises" escribió en el mensaje
news:04dd01c4f7de$ae50fc80$
Y llegamos casi a la misma respuesta :) ... aunque te
comento que si son permitidas sentencias DDL en los
procedimientos almacenados (como CREATE TABLE p.e), el
problema principal es que por definición algunas sentencias
como CREATE VIEW, CREATE PROCEDURE, SET SHOWPLAN_ALL deben
ser la primera sentencia en el batch de comandos y por lo
tanto no los identifica cuando se encuentran dentro del
cuerpo de un procedimiento.

Saludos,
Ulises

jaja contestaste tu antes, mientras yo hacia miraba los


grupos ! :)

__________________________________________

Paulino Padial López
Murcia - España

Microsoft SQL-Server Administrator.
Microsoft Certified Solution Developer
Microsoft Certified Trainer
Oracle Certified Asociate
__________________________________________
"ulises" escribió en el mensaje
news:1cdb01c4f7d6$d4524540$
No puedes usar CREATE VIEW dentro de un procedimiento
almacenado a menos que uses sql dinámico, algo como :

create procedure pr_authors
as
declare @sql nvarchar(1000)
set @sql = 'create view vi_pubs as select * from
pubs.dbo.authors'
exec sp_executesql @sql

Saludos,
Ulises
PD. Ojo con la inyección de código ...

Lo que intento es hacer una vista en base a algunas


condiciones que manejo
desde un Store Procedure.
Me da un error en el momento de la intrccion Create view


dentro del store
Procedure.
alguna idea?
Gracias.
.





.

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