Если вы используете Jackson2
, то получите name
как JsonNode
JsonNode nameNode = value.path("name");
И затем снова получите firstName
и lastName
как JsonNode
Из JsonNode firstName
и JsonNode lirstName
получить строковое значение
String name1 = firstName.path("string").asText();
String name2 = lastName.path("string").asText();
. Краткий ответ: вы не можете.
Спасибо тем, кто предоставил обходные пути, но кажется, что сам SSMS не может быть настроен на приостановку или остановку при ошибке так же, как Жаба для SQL Server может.
ApexSQL Скрипт генерирует пакетные скрипты именно так, как вы хотите. В качестве примера:
--Script Header
begin transaction
go
{Statement #1}
go
--Standard Post-Statement Block
if @@error <> 0 or @@trancount = 0 begin
if @@trancount > 0 rollback transaction
set noexec on
end
go
{Statement #2}
go
--Standard Post-Statement Block
if @@error <> 0 or @@trancount = 0 begin
if @@trancount > 0 rollback transaction
set noexec on
end
go
--Script Footer
if @@trancount > 0 commit transaction
go
set noexec off
go
будет использовать здесь справку блока try catch. В случае ошибки попытка будет завершена, реализовать обработку ошибок в catch
Вам необходимо заключить ваши SQL-операторы в транзакцию .
BEGIN TRANSACTION
/* run all your SQL statements */
COMMIT TRANSACTION
Если есть ошибка внутри транзакции начала / завершения, все операторы будут отменены.
] РЕДАКТИРОВАТЬ: Обертывание внутри транзакции начала / окончания предотвратит фиксацию операторов в базе данных, но не остановит ее на этом этапе. Вам необходимо дополнительно обернуть его внутри блока try / catch следующим образом:
BEGIN TRY
BEGIN TRANSACTION
/* run all your SQL statements */
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
Если вы не можете поместить свой скрипт в хранимую процедуру и использовать оператор return для выхода при ошибке, решение предоставленный @Justice, может быть вашим лучшим выбором. Все остальные упускают из виду главное - вы не можете вернуться из скрипта, даже если вы используете транзакции или даже если вы подняли ошибку. SSMS в любом случае просто выполнит следующее действие, даже если установлено xact abort.
Если вы можете преобразовать свой скрипт в хранимую процедуру, вы можете просто вернуться из него, когда обнаружите ошибку.
Вау. Это чушь какая-то, не правда ли? Я использую SQL-Workbench, который, как и Toad для SQL Server, легко справляется с этим. Однако, в отличие от Toad для SQL Server, он бесплатный.
Я удивлен, что такая фундаментальная функциональность не является частью стандартного инструмента.
рассмотрите возможность использования программы командной строки 'sqlcmd', которая поставляется с SQL Server, с опциями -b и -V. -b заставит sqlcmd завершить работу при возникновении ошибки. Опция -V контролирует уровень серьезности, который считается ошибкой.