Есть ли способ программно определить параметры включения / выключения SET IDENTITY_INSERT xyz?

#sql-server #sql-server-2005 #tsql

#sql-server #sql-server-2005 #tsql

Вопрос:

SESSIONPROPERTY возвращает некоторые из SET параметров сеанса (но не IDENTITY_INSERT).

Есть ли способ получить SET IDENTITY_INSERT xyz ON настройки программно?

Комментарии:

1. Этот поток предполагает, что это может быть возможно только путем попытки и анализа ошибки sqlservercentral.com/Forums/Topic491092-8-1.aspx как и этот social.msdn.microsoft.com/Forums/en/transactsql/thread /…

Ответ №1:

Это некрасиво, но если вы не можете найти другого способа:

 BEGIN TRY
    CREATE TABLE #temp (my_id INT IDENTITY NOT NULL)
    SET IDENTITY_INSERT #temp ON
    SET IDENTITY_INSERT #temp OFF
    DROP TABLE #temp
END TRY
BEGIN CATCH
    SELECT ERROR_MESSAGE()
    DROP TABLE #temp
END CATCH
  

Затем вы могли бы проанализировать результат из ERROR_MESSAGE(), чтобы узнать имя таблицы (если таковое имеется), для которого оно установлено. Если я найду способ получше, я заменю этот ответ.