Sud*_*ha 5 sql t-sql sql-server
我需要创建具有变量名称的动态名称的用户
例如:
以下代码给出了语法错误.
Create Login @User_name WITH PASSWORD @password;
USE database;
Run Code Online (Sandbox Code Playgroud)
我需要为创建的用户分配一个角色..
您不能对变量使用create login.您必须动态创建语句,或者可以使用sp_addlogin.根据http://msdn.microsoft.com/en-us/library/ms173768.aspx,不推荐使用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)
Run Code Online (Sandbox Code Playgroud)
您不能将变量用于对象名称.你可以作弊
exec sp_addlogin @User_name, @password;
Run Code Online (Sandbox Code Playgroud)
要么是构造动态SQL,要么确保使用QUOTENAME来防止SQL注入.
归档时间: |
|
查看次数: |
4387 次 |
最近记录: |