SqlConnection conn = new SqlConnection(Conn);
            SqlCommand cmd = new SqlCommand(comm, conn);//comm=下面的SQL语句
            cmd.CommandType = CommandType.Text;
            try
            {
                conn.Open();
                cmd.ExecuteScalar();
            }
            catch (Exception e)
            {
               string ii = e.Message;
            }
            conn.Close();
_____________________________________________________________________________CREATE PROCEDURE dbo.AAA
         @a bigint
AS
BEGIN 
INSERT INTO [AAA]
(a)
VALUES
(@a)
END
GOCREATE PROCEDURE dbo.BBB
@b bigint
AS
BEGIN
    SELECT b FROM [mytable] where b=@b
END
GO //如果不要GO,则查询分析器及.NET报PROCEDURE 附近错误.

解决方案 »

  1.   

    SqlCommand cmd = new SqlCommand("BBB", conn);
    cmd.CommandType = CommandType.StoredProcedure;
      

  2.   

    用SqlCommand时不能用GO
    直接把GO换成换行就可以了
      

  3.   

    CREATE PROCEDURE dbo.A
             @a bigint
    AS
    INSERT INTO [AAA](a) VALUES(@a)
    GOCREATE PROCEDURE dbo.BBB
    @b bigint
    AS
    SELECT b FROM [mytable] where b=@b
    GOAAA不能重复名字
      

  4.   

    我倒,,一个PROCEDURE的CREATE只能执行一次你不知道吗?把前面的 CREATE 改成 ALTER
      

  5.   

    string a = "CREATE PROCEDURE dbo.A( @a bigint) AS INSERT INTO [AAA](a) VALUES(@a)";
    string b ="CREATE PROCEDURE dbo.BBB( @b bigint) AS SELECT b FROM [mytable] where b=@b";SqlConnection conn = new SqlConnection(Conn);
    conn.Open();
    SqlCommand cmd = new SqlCommand(a, conn);
    cmd.ExecuteScalar();
    cmd = new SqlCommand(b, conn);
    cmd.ExecuteScalar();
      

  6.   

    CREATE PROCEDURE dbo.AAA
             @a bigint
    AS
    BEGIN 
    INSERT INTO [AAA] //手误 应该是 INSERT INTO [MyTable]
    (a)
    VALUES
    (@a)
    END
    GOCREATE PROCEDURE dbo.BBB
    @b bigint
    AS
    SELECT b FROM [mytable] where b=@b
    GO最好是不分,而是一次性的执行,因为是从文件中读出来的.