Я могу использовать следующие операторы для создания пустого хранимого процесса в моей базе данных:
declare @statement as NVARCHAR(250)
set @statement = N'CREATE PROCEDURE [dbo].[vwAS2ConnectionUpdated] as'
exec dbo.sp_executesql @statement
Однако, если я пытаюсь создать представление, используя те же операторы (за исключением использования VIEW в операторе создания) *, я получаю ошибку.
declare @statement as NVARCHAR(250)
set @statement = N'CREATE VIEW [dbo].[vwAS2ConnectionUpdated] as'
exec dbo.sp_executesql @statement
Ошибка:
Incorrect syntax near 'as'.
Можете ли вы сказать мне, почему это может происходить?
Можно ли создать представление с помощью sp_executesql?
Примечание : Я уже просматривал другие подобные вопросы и ответы по SO, но они не являются окончательным ответом.
Вот один пример, который я прочитал:
ошибка в EXECUTE sp_executesql
Примечание 2 : я запускаю это на экземпляре SQL Server Express - SQL Server 2014 с пакетом обновления 3 (SP3) CU3 - 12.0.6259.0 (последняя сборка)
Дополнительная информация
Когда вы используете код для создания SP, он в итоге создает SP, который выглядит следующим образом:
CREATE PROCEDURE [dbo].[vwAS2ConnectionUpdated] as
Однако, он не будет создавать такой вид. Может быть, это ошибка в синтаксическом анализаторе SQL Server и т. Д. Или в том, что sp_executesql (что позволяет создавать SP таким образом ??)