Когда я выполняю приведенный ниже код в своей базе данных SQL Azure, я получаю следующую ошибку:
'sp_executesql' not supported on this version of SQL Server
EXECUTE sp_executesql @ColumnMetadataSQL, @ParmDefinition, @ColumnMetadataOUT=@ColumnMetadata OUTPUT;
Я не уверен, почему я получаю эту ошибку, поскольку 'sp_executesql' поддерживается в базе данных SQL Azure.
Https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-executesql-transact-sql?view=sql-server-ver16
Есть предположения?
Привет, Стью, спасибо за ответ. Когда я запускаю @@version, я получаю следующую ошибку Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '@@version'.
Я должен указать, что это сервер Azure SQL.
Привет, Стью, я неправильно ввожу @@версию?
select @@version
Хорошо, я получаю следующее Microsoft SQL Azure (RTM) - 12.0.2000.8 Jan 12 2023 05:25:39 Copyright (C) 2022 Microsoft Corporation
Привет, Стю, я не думаю, что версия является причиной получения ошибки? Но я могу ошибаться
База данных SQL Azure sp_executesql не поддерживается в этой версии SQL Server.
Поскольку его предоставление не поддерживает эту версию, ошибка выглядит странно, потому что команда sp_executesql поддерживается в версиях SQL Server (почти во всех), то есть 2000, 2005, 2008, 2008R2, 2012, 2014 или выше.
Я пытался воспроизвести, но у меня все работает нормально. с той же версией SQL, что и у вас.
Код и выполнение в SSMS и редакторе запросов Azure:
DECLARE @SQLString NVARCHAR(500);
DECLARE @ParmDefinition NVARCHAR(500);
DECLARE @SalesOrderNumber NVARCHAR(25);
SET @SQLString = N'SELECT @taskObtainedScoreOUT = MAX(taskObtainedScore)
FROM [dbo].[samplejson4]';
SET @ParmDefinition = N'@taskObtainedScoreOUT NVARCHAR(25) OUTPUT';
EXECUTE sp_executesql @SQLString,@ParmDefinition,@taskObtainedScoreOUT = @SalesOrderNumber OUTPUT;
SELECT @SalesOrderNumber ;
Версия SQL:
После того, как проверьте свой код и параметр запроса, если проблема не устранена, проблема может быть связана с сервером Azure для более глубокого изучения, вы можете отправить запрос в службу поддержки команде Microsoft из здесь.
Привет @Pratik, спасибо, что связались. Извините за мой запоздалый ответ. У вас есть какие-нибудь образцы данных, на которых я мог бы протестировать ваш код.
Привет @Pratik, ты прав. sp_executesql работает, когда я ввожу ваш код. Мне нужно будет опубликовать полный код в другом вопросе. Спасибо
Что показывает @@version?