SS64 Discussion Forum

You are not logged in.

#1 2008-01-09 03:27:25

LostInEurope
Just Registered
Registered: 2008-01-09
Posts: 1

Curious Syntax

Hi,

I was looking trough a few the system stored procedures and ran into a syntax that is new to me an was hoping someone could help me out.  I found it in the stored procedure sp_denylogin and the line that I am a bit confused about is:

EXEC %%LocalLogin(Name = @loginame).Lock(Exclusive = 0)

The '%%' is the part I am questioning.

Thanks in Advance!

P.S: The full procedure:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER procedure [sys].[sp_denylogin]
    @loginame        sysname
AS
    -- SETUP RUNTIME OPTIONS / DECLARE VARIABLES --
    set nocount on
    declare @ret   int    -- return value of sp call
    declare @exec_stmt nvarchar(4000)

    -- CHECK PERMISSIONS --
    IF (not is_srvrolemember('securityadmin') = 1)
    begin
       dbcc auditevent (105, 3, 0, @loginame, NULL, NULL, NULL, NULL, NULL, NULL)
       raiserror(15247,-1, -1)
       return (1)
    end
    ELSE
    begin
       dbcc auditevent (105, 3, 1, @loginame, NULL, NULL, NULL, NULL, NULL, NULL)
    end

    -- DISALLOW USER TRANSACTION --
    set implicit_transactions off
    IF (@@trancount > 0)
    begin
        raiserror(15002,-1,-1,'sys.sp_denylogin')
        return (1)
    end

    -- DISALLOW SQL LOGIN (IE. MUST BE 'DOMAIN\USER') --
    if (charindex('\', @loginame) = 0)
    begin
        raiserror(15407, -1, -1, @loginame)
        return (1)
    end

    BEGIN TRANSACTION
    EXEC %%LocalLogin(Name = @loginame).Lock(Exclusive = 0)

    -- ADD ROW FOR NT LOGIN IF NEEDED --
    if @@error <> 0 -- not found
    begin
        execute @ret = sys.sp_MSaddlogin_implicit_ntlogin @loginame
        if (@ret <> 0)
        begin
            ROLLBACK TRANSACTION
            raiserror(15401,-1,-1 ,@loginame)
            return (1)
        end
        -- login locked
    end

    -- DENY ACCESS --
    EXEC %%LocalLogin(Name = @loginame).SetAccess(HasAccess = -1)

    COMMIT TRANSACTION

    -- FINALIZATION: RETURN SUCCESS --
    return (0)    -- sp_denylogin

Offline

#2 2008-03-05 07:19:38

sanapala
Just Registered
Registered: 2008-03-05
Posts: 2

Re: Curious Syntax

you need to change this code line if @@error <> 0

Offline

Board footer

Powered by FluxBB