Я пишу динамический SQL для удаления и создания представления в другой базе данных.
Итак, я написал:
set @CreateViewStatement =
'
USE ['+ @DB +'];
CREATE VIEW [dbo].[MyTable]
AS
SELECT ........something
exec (@CreateViewStatement)
Это дает мне ошибку:
«CREATE VIEW» должен быть первым оператором в пакете запроса.
Если я удаляю оператор USE DATABASE, он работает нормально, но тогда база данных больше не указывается ....
Как я могу решить эту проблему?
sql-server
sql-server-2005
dynamic-sql
Король чан
источник
источник
Один из способов, с которыми я справился, когда сталкиваюсь с этим делом, это поместить GO после оператора use.
источник
GO
является разделителем пакетов в инструментах клиента, а не ключевым словом TSQL.