【发布时间】:2015-09-30 10:48:38
【问题描述】:
我正在寻找使用触发器删除数据库。这样做的原因是我有一个包含客户详细信息的表,当创建客户时,会为客户创建一个数据库,并且他们的所有数据都保存在他们的数据库中。因此,删除客户端会留下一个孤立的数据库。客户端 ID 字段 (guid) 是数据库名称。任何帮助将不胜感激。
到目前为止,这是我尝试过的:
CREATE TRIGGER DeletedClientDB
ON systemclients
FOR DELETE
AS
DECLARE @db VARCHAR(50);
SET @db = (SELECT deleted.SystemClientID FROM deleted)
DROP DATABASE @db
GO
但语法不正确。
【问题讨论】:
-
你已经尝试了什么?
-
您使用的是哪个 DBMS?请使用适当的标签,也许你会有一个更快的答案。
-
我不会在触发器内部这样做 - 触发器应该非常小、快速、灵活。不要在触发器内进行繁重的处理(比如删除整个数据库!)!相反:在触发器中,将 reminder 写入“要删除的数据库”表中,然后在 SQL Server 中有一个单独的作业,定期检查该表并删除其中提到的所有数据库.
-
或将其发送到服务代理队列。
标签: sql triggers sql-server-2012