Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да проверите дали IDENTITY_INSERT е настроен на ON или OFF в SQL Server?

Тъй като SET IDENTITY_INSERT е чувствителен към сесията, управлява се на ниво буфер, без да се съхранява някъде. Това означава, че не е необходимо да проверяваме IDENTITY_INSERT състояние, тъй като никога не използваме тази ключова дума в текущата сесия.

За съжаление няма помощ за това.

Страхотен въпрос обаче :)

Източник:Тук

Актуализиране Може би има начини да направите това, които също се виждат в сайта, който дадох връзка, IMO, това е твърде много усилия, за да бъде полезен.

if

(select max(id) from MyTable) < (select max(id) from inserted)

--Then you may be inserting a record normally

BEGIN
    set @I = 1 --SQL wants something to happen in the "IF" side of an IF/ELSE
END

ELSE --You definitely have IDENTITY_INSERT on.  Done as ELSE instead of the other way around so that if there is no inserted table, it will run anyway


BEGIN
.... Code that shouldn't run with IDENTITY_INSERT on
END


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Обратно сканиране на индекса на SQL Server:разбиране и настройка на производителността

  2. Изчисляване на текущото общо с клауза OVER и клауза PARTITION BY в SQL Server

  3. Вземете списък с всички нулеви и ненулеви колони в базата данни на SQL Server - SQL Server / T-SQL урок, част 53

  4. Съхраняване на изображения в SQL Server?

  5. 4 причини, поради които трябва да дадете приоритет на наблюдението на база данни във вашето планиране за 2020 г.