Thursday, August 21, 2008

Phân biệt chữ hoa và chữ thường trong SQL Server 2000

Ngầm định cài đặt của SQL Server không phân biệt chữ hoa và chữ thường, nghĩa là HELLO sẽ giống với hello.

Để buộc SQL Server phân biệt chữ hoa chữ thường trong tìm kiếm, chúng ta sẽ sử dụng chức năng tìm kiếm và so sánh (collate).

CREATE procedure sp_AuthenticateUser
    @username varchar(200),
    @password varchar(50)
   As
BEGIN TRANSACTION
    IF EXISTS (SELECT 1 FROM dbo.TableName WHERE username = @username COLLATE SQL_Latin1_General_CP1_CS_AS 
        AND Password = @ password COLLATE SQL_Latin1_General_CP1_CS_AS)
        BEGIN
            Print 'Success'
            // Do your database queries here
        END
    ELSE
        BEGIN
            Print 'Unsuccessful'
        END
 
        IF @@Error <>0
            BEGIN
                ROLLBACK TRANSACTION
                RETURN (1)
            END
        ELSE
            BEGIN
                COMMIT TRANSACTION
                RETURN (0)    
            END
GO