0
我希望能够创建一个用户的登录和分配一些权限,我要为数据库名称为> 4这里做到这一点就是我有动态SQL CREATE USER每个数据库
EXEC sp_MSForEachDB
'Declare @name varchar(100), @UserToAdd VARCHAR(100) = ''HQ\tname''
select @name = ''?''
PRINT @name
IF db_id(@name) > 4
BEGIN
USE ?
EXEC (''CREATE USER ['' + @UserToAdd + ''] FOR LOGIN ['' + @UserToAdd + ''];'')
EXEC (''EXEC sp_addrolemember N''db_datareader'', N'''' + @UserToAdd + '''';'')
END'
我使用多个报价,如果我只是运行此为一个单独的数据库,我知道它使用下面的代码
DECLARE @UserToAdd VARCHAR(100) = 'HQ\tname'
BEGIN
USE [dbnamehere]
EXEC ('CREATE USER [' + @UserToAdd + '] FOR LOGIN [' + @UserToAdd + '];')
EXEC ('EXEC sp_addrolemember N''db_datareader'', N''' + @UserToAdd + ''';')
END
谁能帮忙的语法?要做到这一点
有时需要四个报价在SQL给exec获得报价,看的快捷方式,如果你有它的权利是改变exec来打印,你会看到它正在尝试使用的SQL。 – 2015-03-18 20:49:47