J'essaye d'exécuter cette commande dans SQL Server:
disable trigger all on MYDB
Cela échoue pour moi. Le compte auquel je suis connecté a accès à MYDB et je lui donne à peu près toutes les autorisations disponibles (c'est une base de données locale et mon compte uniquement, donc c'est OK). Je ne comprends pas pourquoi il me dit qu'il ne trouve pas MYDB pour cela? J'ai déjà fait ça. Remarquez également: je peux sélectionner dans la base de données, mettre à jour et exécuter une déclaration d'octroi (telle que l'octroi de l'exécution d'un proc). Je peux également désactiver les déclencheurs manuellement ...
Alors pourquoi cela échoue-t-il? J'ai pu le faire avant ...
Merci.
sp_msforeachtable 'ALTER TABLE ? DISABLE TRIGGER all'
Pour activer tous les déclencheurs, vous pouvez utiliser l'instruction suivante
sp_msforeachtable 'ALTER TABLE ? ENABLE TRIGGER all'
use MYDB;
disable trigger all on DATABASE;
Je ne sais pas pourquoi Yuck a supprimé leur réponse. De DISABLE TRIGGER :
object_name Est le nom de la table ou de la vue sur laquelle le déclencheur DML trigger_name a été créé pour s'exécuter.
Autrement dit, vous ne pouvez pas fournir de nom de base de données à cette instruction. Alors que le MYDB
base de données existe, il y a n'est pas un objet qu'il contient appelé MYDB
.