Ошибка: есть незафиксированные транзакции - PullRequest
5 голосов
/ 21 марта 2011

Я открываю новое окно в SSMS и запускаю это:

SET ANSI_DEFAULTS ON 
GO

CREATE PROCEDURE [dbo].[zzz_test2]
(
    @a    int
)
AS
    SET NOCOUNT ON
    SET @a=1
    RETURN 0
GO

и затем закройте окно, что приводит к этому предупреждению:

There are uncommitted transactions. Do you wish to commit these before closing the window?

что происходит ??

когда я открываю новое окно SSMS и запускаю это:

SET ANSI_NULLS  ON  
GO    

CREATE PROCEDURE [dbo].[zzz_test2]
(
    @a    int
)
AS
    SET NOCOUNT ON
    SET @a=1
    RETURN 0
GO

и закрой окно, я не получаю предупреждения.

1 Ответ

8 голосов
/ 21 марта 2011

Как описано в документации для ANSI_DEFAULTS

Когда включено (ON), эта опция включает следующие настройки ISO:

SET ANSI_NULLS
SET CURSOR_CLOSE_ON_COMMIT
SET ANSI_NULL_DFLT_ON
SET IMPLICIT_TRANSACTIONS
SET ANSI_PADDING
SET QUOTED_IDENTIFIER
SET ANSI_WARNINGS

Как задокументировано здесь , когда IMPLICIT_TRANSACTIONS включено.

Транзакции, которые автоматически открыт в результате этой настройки быть ВКЛ должен быть явным или откат пользователя в конце сделки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...