CREATE TRIGGER [DeleteStudent] ON [dbo].[U_Student_Infos] 
FOR  DELETE 
AS
Declare @intID int
Set @intID=(SELECT Student_ID FROM Deleted)
IF @intID>0
BEGIN
Delete FROM U_Grade_Infos WHERE Grade_Student_ID =@intID
END
GO 然后一起运行就行了。CREATE TRIGGER [DeleteTeacher] ON [dbo].[U_Teacher_Infos] 
FOR DELETE 
AS
Declare @intID int
Set @intID=(SELECT Teacher_ID FROM Deleted)
IF @intID>0
BEGIN
Delete FROM U_Teacher_Friend_Infos WHERE Friend_Teacher_ID =@intID
Delete FROM U_Teacher_Send_Infos WHERE Teacher_ID =@intIDEND
GO

解决方案 »

  1.   

    你看查询帮助上的说明:
    GO
    用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。语法
    GO注释
    GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。SQL 查询分析器和 osql 及 isql 命令提示实用工具执行 GO 命令的方式不同。有关更多信息,请参见 osql 实用工具、isql 实用工具和 SQL 查询分析器。 GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。
      

  2.   

    为什么要加上这个go,直接这样运行就可以建立多个触发器了阿,在触发器里面加个go多此一举了吧。还是象楼上的说的要建立“动态触发器”,奥秘,关注。
      

  3.   

    TO:yujohny(踏网无痕) 
    也不完全是这个意思吧,我只是要一次性建立很多个触发器,这样的话,数据库重新建立时就不用那么麻烦了,但找不到能将GO加到触发器里的资料。晕啊。
      

  4.   

    如果楼主是想在两个创建触发器的语句之间加上go,可以将代码复制到word中,
    然后用查找/替换
    查找内容输入:^pcreate trigger
    替换内容输入:^pGO^p^pcreate trigger选择全部替换,完成后再将其他复制到查询分析器中执行就行了.
      

  5.   

    TO:zjcxc(邹建)
    谢谢,不过试过了,没用。
    还是像 killxtt(我菜我菜我菜菜菜) 说的那样,不加了,反正也能用,哎,原来以为必需要加上GO才能执行多条SQL,但是不加也可以,那就算了。谢谢各位!如果没人回答就结贴了。