J'écris un SQL dynamique pour déposer et créer une vue dans une base de données différente.
J'ai donc écrit:
set @CreateViewStatement =
'
USE ['+ @DB +'];
CREATE VIEW [dbo].[MyTable]
AS
SELECT ........something
exec (@CreateViewStatement)
Cela me donne une erreur:
'CREATE VIEW' doit être la première instruction d'un lot de requêtes.
Si je supprime l'instruction USE DATABASE, cela fonctionne bien, mais la base de données n'est plus spécifiée ....
Comment puis-je résoudre ce problème?
sql-server
sql-server-2005
dynamic-sql
King Chan
la source
la source
Une façon que j'ai gérée lors de l'exécution dans ce cas est de placer GO après l'instruction use.
la source
GO
est un délimiteur par lots dans les outils client et non un mot clé TSQL.