Мне нужно создать пользователя с динамическими именами с именем переменной
пример:
Следующий код дает синтаксическую ошибку.
Create Login @User_name WITH PASSWORD @password; USE database;
и мне нужно назначить роль для созданного пользователя ..
Нельзя использовать создание логина с переменными.Вы должны создать оператор динамически или вы можете использовать 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)
Нельзя использовать переменные для имен объектов.Вы можете обмануть
exec sp_addlogin @User_name, @password;
Либо так, либо создать динамический SQL, но обязательно используйте QUOTENAME для предотвращения внедрения SQL.