Estoy escribiendo un sql dinámico para soltar y crear una vista en una base de datos diferente.
Entonces escribí:
set @CreateViewStatement =
'
USE ['+ @DB +'];
CREATE VIEW [dbo].[MyTable]
AS
SELECT ........something
exec (@CreateViewStatement)
Me da error:
'CREAR VISTA' debe ser la primera instrucción en un lote de consulta.
Si elimino la instrucción USE DATABASE funciona bien, pero la base de datos ya no se especifica ...
¿Como puedó resolver esté problema?
sql-server
sql-server-2005
dynamic-sql
Rey chan
fuente
fuente
Una forma que he manejado cuando me encuentro con este caso es colocar GO después de la declaración de uso.
fuente
GO
es un delimitador por lotes en las herramientas del cliente, no una palabra clave TSQL.