Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Lỗi Incorrect syntax near the keyword 'if' khi sử dụng with + if + else trong stored procedures

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    447

    Mặc định Lỗi Incorrect syntax near the keyword 'if' khi sử dụng with + if + else trong stored procedures

    Các bạn cho mình hỏi đoạn code dưới đây của mình trong sql server sai ở chổ nào mà biên dịch nó báo lỗi:

    Msg 156, Level 15, State 1, Procedure sp_SearchInfo, Line 13
    Incorrect syntax near the keyword 'if'.
    Msg 102, Level 15, State 1, Procedure sp_SearchInfo, Line 15
    Incorrect syntax near ')'.


    Code:
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    
    create PROCEDURE [dbo].[sp_SearchInfo]
    (
    	@OptionKey nvarchar(50)
    )
    AS
    BEGIN
    with SearchInfo(ID, TenDangNhap) as
    (
    	if (@OptionKey = 'SELECT_all')	
    		select ID, TenDangNhap from tbl_Info
    )
    select * from SearchInfo
    END
    Thanks !

  2. #2
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    1. vấn đề này đâu có liên quan gì đến C# ?

    2. lỗi ở syntax cte, đâu phải của procedure

  3. #3
    Ngày gia nhập
    10 2011
    Bài viết
    447

    Đây là store mình dùng để gọi lên trong c# mà, ý mình là tạo bản tạm rồi xét điều kiện, nếu người dùng chọn hình thức nào thì select theo cách đó, mình muốn biết trong with có thể chứa if else được không, nếu được thì store đó nó sai cái gì, các bạn xem giúp mình với?

  4. #4
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Stored procedure là công cụ của CSDL.
    Liên tự WITH dùng để đặt cte trong T-SQL (SQL Server) hoặc đặt tên cho subquery trong PL-SQL (Oracle)

  5. #5
    Ngày gia nhập
    10 2011
    Bài viết
    447

    Nếu mình bỏ lệnh if (@OptionKey = 'SELECT_all') thì biên dịch bình thường, vậy trong with này không chưa if được hay sao các bạn.

  6. #6
    Ngày gia nhập
    10 2011
    Bài viết
    447

    Mặc định Lỗi Incorrect syntax near the keyword 'if' khi sử dụng with + if + else trong stored procedures

    Thanks!, Mình làm được rồi, vầy mới đúng:

    Code:
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    go
    
    create PROCEDURE [dbo].[sp_SearchInfo]
    (
       @OptionKey nvarchar(50)
    )
    AS
    BEGIN
    	if (@OptionKey = 'SELECT_all')   
    	Begin
    		with SearchInfo(ID, TenDangNhap) as
    		( 
    			select ID, TenDangNhap from tbl_Info
    		)
    		select * from SearchInfo
    	END
    End

Các đề tài tương tự

  1. Lỗi Incorrect syntax near ') trong nút lưu khi thêm dữ liệu
    Gửi bởi vuongvuong01 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 20
    Bài viết cuối: 13-09-2013, 10:39 AM
  2. MS SQL Lỗi Lỗi Incorrect syntax near the keyword 'ON'.
    Gửi bởi kim.vu232 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 1
    Bài viết cuối: 12-01-2013, 10:47 PM
  3. Lỗi Incorrect syntax near '%e%' trong xử lý Database trên C#
    Gửi bởi duongxuantuan1 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 15
    Bài viết cuối: 13-03-2011, 11:00 AM
  4. Tạo stored procedures trong sql 2005
    Gửi bởi billle trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 2
    Bài viết cuối: 18-08-2010, 10:25 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn