AYUDA con CREATE VIEW

04/01/2006 - 20:28 por Matías | Informe spam
Hola a todos, quiero que en caso de que una determinada VISTA no exista,
crearla:

IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')
CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla

pero me salta el error: Incorrect syntax near the keyword 'VIEW'

Alguna idea ???

Gracias...

Preguntas similare

Leer las respuestas

#1 Maxi
04/01/2006 - 20:45 | Informe spam
Hombre te falta el BEGIN


IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')

begin

CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla

end


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Matías" escribió en el mensaje
news:%
Hola a todos, quiero que en caso de que una determinada VISTA no exista,
crearla:

IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')
CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla

pero me salta el error: Incorrect syntax near the keyword 'VIEW'

Alguna idea ???

Gracias...


Respuesta Responder a este mensaje
#2 Matías
04/01/2006 - 21:22 | Informe spam
Sip, lo hice tal cual vos decis, pero me salta el mismo error: Incorrect
syntax near the keyword 'VIEW'.

Lo raro es que si ejecuto solamente:
CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla
funciona.

Si ejecuto:
IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')
begin
print 'FUNCIONA'
end
Tambien funciona

Si ejecuto:
IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')
begin
CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla
end
NO FUNCIONA !!!!!!!!!!

Estoy desconcertado, alguna idea ???????

Gracias.

"Maxi" escribió en el mensaje
news:
Hombre te falta el BEGIN


IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')

begin

CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla

end


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Matías" escribió en el mensaje
news:%
> Hola a todos, quiero que en caso de que una determinada VISTA no exista,
> crearla:
>
> IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
> TABLE_NAME = 'Mi_vista')
> CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla
>
> pero me salta el error: Incorrect syntax near the keyword 'VIEW'
>
> Alguna idea ???
>
> Gracias...
>
>


Respuesta Responder a este mensaje
#3 Adrian
04/01/2006 - 22:39 | Informe spam
Matias, proba con la siguiente sentencia para ver si existe la vista
(esta sentencia es la que utiliza el Enterprise Manager cuando genera
las secuencia de comandos sql)

if NOT exists (select * from dbo.sysobjects where id object_id(N'[dbo].[NombreVista]') and
OBJECTPROPERTY(id, N'IsView') = 1)
Aca el crear vista
GO
Saludos
Adrian


Matías wrote:
Sip, lo hice tal cual vos decis, pero me salta el mismo error: Incorrect
syntax near the keyword 'VIEW'.

Lo raro es que si ejecuto solamente:
CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla
funciona.

Si ejecuto:
IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')
begin
print 'FUNCIONA'
end
Tambien funciona

Si ejecuto:
IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')
begin
CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla
end
NO FUNCIONA !!!!!!!!!!

Estoy desconcertado, alguna idea ???????

Gracias.

"Maxi" escribió en el mensaje
news:
> Hombre te falta el BEGIN
>
>
> IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
> TABLE_NAME = 'Mi_vista')
>
> begin
>
> CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla
>
> end
>
>
> Salu2
> Maxi [MVP SQL SERVER]
> www.sqlgurus.org
>
>
> "Matías" escribió en el mensaje
> news:%
> > Hola a todos, quiero que en caso de que una determinada VISTA no exista,
> > crearla:
> >
> > IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
> > TABLE_NAME = 'Mi_vista')
> > CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla
> >
> > pero me salta el error: Incorrect syntax near the keyword 'VIEW'
> >
> > Alguna idea ???
> >
> > Gracias...
> >
> >
>
>
Respuesta Responder a este mensaje
#4 Adrian
04/01/2006 - 22:42 | Informe spam
Matias, utiliza la sentencia que utiliza el enterprise manager para ver
si existe la vista

if exists (select * from dbo.sysobjects where id object_id(N'[dbo].[NombreVista]') and
OBJECTPROPERTY(id, N'IsView') = 1)
Aca va el crear de la vista
GO

Saludos
Adrian
Respuesta Responder a este mensaje
#5 Jorge Martinez
04/01/2006 - 22:55 | Informe spam
El problema creo que esta en que CREATE VIEW tiene que ser la primera
sentencia de un BATCH, prueba a hacerlo de esta forma:

IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')
DROP VIEW Mi_Vista
GO

CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla
GO

SalU2

"Matías" escribió en el mensaje
news:%
Hola a todos, quiero que en caso de que una determinada VISTA no exista,
crearla:

IF NOT EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE
TABLE_NAME = 'Mi_vista')
CREATE VIEW Mi_vista AS SELECT * FROM Mi_tabla

pero me salta el error: Incorrect syntax near the keyword 'VIEW'

Alguna idea ???

Gracias...


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida