如何用文本文件写存储过程以及触发器 
具个例子
sqlserver2000
 create table [dbo].[position]
(
        [allposition] [varchar](50) null
) ON [PRIMARY]
这是建立表
如何建立触发器和存储过程

解决方案 »

  1.   

    语法我会写,也会在SQLServer中写,我是在SQLServer中写好以后,生成SQL脚本的
     if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[proc_Login]') and   OBJECTPROPERTY(id, N'IsProcedure') = 1)
     drop procedure [dbo].[proc_Login] GO 
     SET QUOTED_IDENTIFIER OFF 
     
     GO  SET ANSI_NULLS OFF  GO CREATE proc proc_Login
     (
     @UserName varchar (20),
     @userPwd varchar (20)
     )
     as
     if exists(select * from tb_User where UserName=@UserName and UserPwd=@UserPwd)
       return 100
     else
       return -100 GO SET QUOTED_IDENTIFIER OFF  GO SET ANSI_NULLS ON  GO
    因为有好几个存储过程和触发器,执行时提示GO附近有语法错误,那是什么错误,到底该怎么写
      

  2.   

      use car if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[proc_Login]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[proc_Login] GO  SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO CREATE proc proc_Login(@UserName varchar (20),@userPwd varchar (20))as if exists(select * from tb_User where UserName=@UserName and UserPwd=@UserPwd)   return 100 else    return -100 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO   
    错误提示有三个,不过提示都一样:第一行GO附近有语法错误
      

  3.   

     use car if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[proc_Login]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)drop procedure [dbo].[proc_Login] GO  SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO CREATE proc proc_Login(@UserName varchar (20),@userPwd varchar (20))as if exists(select * from tb_User where UserName=@UserName and UserPwd=@UserPwd)  return 100 else    return -100 GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO 
    把GO  SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF 这行去掉去在查询分析器里能执行,但是在C sharp中调用
    这个txt文件时,又提示:第 1 行: 'GO' 附近有语法错误。
    'CREATE PROCEDURE' 必须是批查询中的第一条语句。
    必须声明变量 '@UserName'。
      

  4.   

    各位看不懂我说的什么意思吗?我的触发器和存储过程在本地都已经建好了,我是说在一个新的电脑上如何在不发给他库的前提
    下,只给他程序和导出来的SQL脚本文件,也就是TXT文件,怎么能把库安装进了,库和表我已经导进成功了,就是存储过程和触发器导入时提示语法错误
      

  5.   


    use car 
    GO
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[proc_Login]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
    drop procedure [dbo].[proc_Login] 
    GO  
    SET QUOTED_IDENTIFIER OFF 
    GO 
    SET ANSI_NULLS OFF 
    GO 
    CREATE proc proc_Login
    (@UserName varchar (20),
     @userPwd varchar (20)
    )
    as 
    if exists(select * from tb_User where UserName=@UserName and UserPwd=@UserPwd)  
      return 100 
    else    
      return -100 
    GO 
    SET QUOTED_IDENTIFIER OFF 
    GO SET ANSI_NULLS ON 
    GO 
      

  6.   

    语法没问题,测试通过use car 
    GO 
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[proc_Login]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) 
    drop procedure [dbo].[proc_Login] 
    GO  
    SET QUOTED_IDENTIFIER OFF 
    GO 
    SET ANSI_NULLS OFF 
    GO 
    CREATE proc proc_Login 
    (@UserName varchar (20), 
    @userPwd varchar (20) 

    as 
    if exists(select * from tb_User where UserName=@UserName and UserPwd=@UserPwd)  
      return 100 
    else    
      return -100 
    GO 
    SET QUOTED_IDENTIFIER OFF 
    GO 
    SET ANSI_NULLS ON 
    GO 
      

  7.   

    连接原先的存储过程点修改,copy到现在的库执行。或建立两个连接,打开修改后,再切换连接执行! 
      

  8.   

    为什么要用文本文档呢?直接在SQL SERVER里写要方便很多.
      

  9.   

    ......你总不会和自己的大脑过不去吧,练习记忆力?
     SQL语句自己写很容易犯错的
       你实在不想用查询分析器你就用程序员写字板吧...
     我比较懒 08有智感.嘿嘿.我就喜欢用那玩意.
      

  10.   

    如果你的SP不是很多,建议你一个个导出,然后再新库中执行。
    如果你有好多的SP,建议你导出后把前面的if 判断和drop 去掉,最好也把go替换成空格。
    意思就是你直接执行Create 命令,这样应该没有问题了,而且语法也很容易检查,祝你成功!