我需要创建具有变量名称
的动态名称的用户示例:
以下代码给出了语法错误。
Create Login @User_name WITH PASSWORD @password;
USE database;
我需要为创建的用户分配角色..
答案 0 :(得分:8)
您不能对变量使用create login。您必须动态创建语句,或者可以使用sp_addlogin。 根据{{3}},不推荐使用sp_addlogin。
declare @UN sysname
declare @PW sysname
declare @S nvarchar(100)
set @UN = 'UserName'
set @PW = 'Password'
set @S = 'CREATE LOGIN ' + quotename(@UN) + ' WITH PASSWORD = ' + quotename(@PW, '''')
exec (@S)
答案 1 :(得分:5)
您不能将变量用于对象名称。你可以作弊
exec sp_addlogin @User_name, @password;
要么构造动态SQL,要么确保使用QUOTENAME来阻止SQL注入。