SQL Server触发器删除另一个数据库

时间:2015-07-11 21:12:37

标签: sql triggers sql-server-2012

我想使用触发器删除数据库。原因是我有一个包含客户端详细信息的表,在创建客户端时,为客户端创建了一个数据库,并且所有数据都保存在他们的数据库中。因此删除客户端会留下孤立的数据库。客户端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

但无法使语法正确。

1 个答案:

答案 0 :(得分:2)

更新

在阅读Martin Smith的评论后,我认为最好完全改变我的答案。我保留了之前的答案,以便评论不会失去背景。

结合marc_s评论和我自己的评论,我建议只需将已删除的ID插入另一个表中,让预定的作业从那里读取数据并删除数据库。

试试这个:

<script>

    var form = document.getElementById("form");


    function newinput(){    
        var input = document.createElement("input");
        input.type = "text";
        form.appendChild(input);
    }
    function deleteinput(){

        form.removeChild();

    }
</script>

请注意,删除客户端表中记录的用户需要删除db权限。