Create PROC CreateSmallPage
(
   @title      nvarchar(200),
   @parentID   int,
   @url        varchar(200),
   @sort       int,
   @des        nvarchar(600),
   @actionType varchar(20)
)
AS
BEGIN 
   BEGIN TRAN
      INSERT INTO Zlb_Resource(Title, ParentID, URl, Sort, Des)
           VALUES (@title, @parentID, @url, @sort, @des)
      
      SELECT id, item into Zlb_Privilege FROM (SELECT [ID] FROM Zlb_Resource
                                                      CROSS JOIN (SELECT item FROM Split(@actionType,',')) AS S
                                               )
   IF(@@ERROR > 0)
      ROLLBACK TRAN
   ELSE                                           
      COMMIT TRAN
END提示错误:在关键字 'IF' 附近有语法错误,请问哪错了,谢谢大家了! 个把月不写SQL,把啥都给忘了!

解决方案 »

  1.   

    SELECT id, item into Zlb_Privilege FROM (SELECT [ID] FROM Zlb_Resource
                                                          CROSS JOIN (SELECT item FROM Split(@actionType,',')) AS S
                                                   ) AS T少了个名
      

  2.   


    Create PROC CreateSmallPage
    (
       @title      nvarchar(200),
       @parentID   int,
       @url        varchar(200),
       @sort       int,
       @des        nvarchar(600),
       @actionType varchar(20)
    )
    AS
    BEGIN 
       BEGIN TRAN
          INSERT INTO Zlb_Resource(Title, ParentID, URl, Sort, Des)
               VALUES (@title, @parentID, @url, @sort, @des)
          
          SELECT id, item into Zlb_Privilege FROM (SELECT [ID] FROM Zlb_Resource
                                                          CROSS JOIN (SELECT item FROM Split(@actionType,',')) AS S
                                                   )
       IF @@ERROR > 0
       begin
          ROLLBACK TRAN
       end
       ELSE   
       begin                                        
          COMMIT TRAN
       end
    END
      

  3.   

    IF @@ERROR=0
        COMMIT TRAN
    ELSE
        ROLLBACK TRAN
    end 
      

  4.   

    Create PROC CreateSmallPage
    (
       @title      nvarchar(200),
       @parentID   int,
       @url        varchar(200),
       @sort       int,
       @des        nvarchar(600),
       @actionType varchar(20)
    )
    AS
    BEGIN 
       BEGIN TRAN
          INSERT INTO Zlb_Resource(Title, ParentID, URl, Sort, Des)
               VALUES (@title, @parentID, @url, @sort, @des)
          
          SELECT id, item into Zlb_Privilege FROM (SELECT [ID] FROM Zlb_Resource
                                                          CROSS JOIN (SELECT item FROM Split(@actionType,',')) AS S
                                                   ) as tab
       IF(@@ERROR > 0)
          ROLLBACK TRAN
       ELSE                                           
          COMMIT TRAN
    END
      

  5.   

    SELECT id, item into Zlb_Privilege FROM (SELECT [ID] FROM Zlb_Resource
                                                          CROSS JOIN (SELECT item FROM Split(@actionType,',')) AS S
                                                   )t
      

  6.   


    Create PROC CreateSmallPage 

    @title nvarchar(200), 
    @parentID int, 
    @url varchar(200), 
    @sort int, 
    @des nvarchar(600), 
    @actionType varchar(20) 

    AS 
    BEGIN 
    BEGIN TRAN  
    INSERT INTO Zlb_Resource(Title, ParentID, URl, Sort, Des) 
    VALUES (@title, @parentID, @url, @sort, @des) 
    SELECT id, item into Zlb_Privilege FROM (SELECT [ID] FROM Zlb_Resource CROSS JOIN (SELECT item FROM Split(@actionType,',')) AS S ) as T
    IF(@@ERROR > 0) 
    ROLLBACK TRAN  
    ELSE 
    COMMIT TRAN 
    END
      

  7.   


    --try
    Create PROC CreateSmallPage
    (
       @title      nvarchar(200),
       @parentID   int,
       @url        varchar(200),
       @sort       int,
       @des        nvarchar(600),
       @actionType varchar(20)
    )
    AS
    BEGIN 
       BEGIN TRAN
          INSERT INTO Zlb_Resource(Title, ParentID, URl, Sort, Des)
               VALUES (@title, @parentID, @url, @sort, @des)
          
          SELECT id, item into Zlb_Privilege FROM (SELECT [ID] FROM Zlb_Resource
                                                          CROSS JOIN (SELECT item FROM Split(@actionType,',')) AS S
                                                   ) tb
       IF(@@ERROR > 0)
          ROLLBACK TRAN
       ELSE                                           
          COMMIT TRAN
    END