使用create login query在存储过程中使用空密码创建登录?

时间:2017-10-16 08:18:31

标签: sql-server-2012 sp-executesql single-quotes

我无法更正我的查询,我想通过使用null密码将参数传递给create login查询来创建登录?

ALTER PROCEDURE usp_login
    (@DLName VARCHAR(50),
     @DBName VARCHAR(50))
AS
BEGIN
    DECLARE @statement NVARCHAR(1000)

    SET @statement = 'Create Login ' + @DLName + ' With Password = ' + '''''' + ',' + ' Default_Database = ' + @DBName + ',' + ' Check_Policy = ' + ' Off'

    EXEC sp_executesql @statement, N'@DLName, @DBName', @DLName, @DBName
END

1 个答案:

答案 0 :(得分:0)

替换此行

EXEC sp_executesql @statement, N'@DLName, @DBName', @DLName, @DBName

通过

EXEC sp_executesql @statement

因为声明

SET @statement = 'Create Login ' + @DLName + ' With Password = ' + '''''' + ',' + ' Default_Database = ' + @DBName + ',' + ' Check_Policy = ' + ' Off'

通过与存储过程usp_login中传递的参数连接而成为纯SQL查询 - 这进一步不需要任何参数