Возможно, это связано с современным подходом к программированию. Вы знаете, много лет назад вы могли бы написать свою программу на листе бумаги, некоторые другие люди превратили бы ее в стопку перфокарт и загрузили в компьютер, а завтра утром вы получите аварийную свалку на рулоне бумаги, взвешивающем пол пуда. Все это заставило вас много думать, прежде чем писать первую строку кода.
Те дни давно прошли. При использовании языка сценариев, такого как PHP или JavaScript, вы можете немедленно протестировать любые изменения. Это не относится к Java, хотя приложения-службы предоставляют вам горячее развертывание. Поэтому очень удобно, что Java-программы могут быть скомпилированы быстро, поскольку компиляторы байт-кода довольно просты.
Но не существует таких языков, как JIT-only. В настоящее время компиляторы доступны для Java в течение некоторого времени, а в последнее время Моно представил его в CLR. Фактически, MonoTouch вообще возможен из-за компиляции AOT, поскольку в магазине приложений Apple запрещены неродные приложения.
DISABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
http://msdn.microsoft.com/en-us/library/ms189748 (SQL.90) .aspx
, сопровождаемый инверсией:
ENABLE TRIGGER { [ schema_name . ] trigger_name [ ,...n ] | ALL }
ON { object_name | DATABASE | ALL SERVER } [ ; ]
http://msdn.microsoft.com/en-us/library/ms182706 (SQL.90) .aspx
Однако это - почти всегда плохая идея сделать это. Вы смешаете с целостностью базы данных. Не делайте этого, не рассматривая разветвления и сверяясь с dbas, если у Вас есть они.
, Если Вы действительно следуете за кодом Matt убедиться не забыть снова включать триггер. И помните, что триггер отключен для всех вставка, обновление или удаление из таблицы, в то время как это выключено, не только для Вашего процесса, поэтому если это должно быть сделано, затем сделать это в течение часов, когда база данных наименее активна (и предпочтительно в однопользовательском режиме).
, Если необходимо сделать это для импорта большого объема данных, затем полагайте, что объемная вставка не запускает триггеры. Но тогда Ваш процесс после объемной вставки должен будет согласовать любые проблемы целостности данных, которые Вы представляете, ни увольнение триггеров.
Иногда, чтобы заполнить пустую базу данных от внешнего источника данных или отладить проблему в базе данных я должен отключить ВСЕ триггеры и ограничения. Чтобы сделать так, я использую следующий код:
Для отключения всех ограничений и триггеров:
sp_msforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
sp_msforeachtable "ALTER TABLE ? DISABLE TRIGGER all"
Для включения всех ограничений и триггеров:
exec sp_msforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
sp_msforeachtable @command1="print '?'", @command2="ALTER TABLE ? ENABLE TRIGGER all"
я нашел, что решение некоторое время назад на SQLServerCentral, но должен был изменить разрешать ограничительную часть, поскольку исходный не работал полностью