5
的所有登录名我正在寻找使用脚本为每个登录名使用与特定模式匹配的批量删除用户数据库的用户。用TSQL做这件事的最好方法是什么?删除登录名像
DELETE syslogins WHERE....
不起作用
试图从syslogins中直删除将返回“特设更新系统目录不准”
的所有登录名我正在寻找使用脚本为每个登录名使用与特定模式匹配的批量删除用户数据库的用户。用TSQL做这件事的最好方法是什么?删除登录名像
DELETE syslogins WHERE....
不起作用
试图从syslogins中直删除将返回“特设更新系统目录不准”
怎么样这个查询来创建TSQL语句?然后将这个SQL复制到一个新的查询和执行。
select 'drop login [' + name + '];'
from sys.server_principals
WHERE name like 'foo%'
这基本上是会被创建并运行时删除/下降,由SSMS登录脚本。
USE MyDatabase
DECLARE @LoginName sysname
DECLARE @SQL NVARCHAR(1000)
DECLARE DBLOGINS CURSOR FOR
SELECT name FROM sys.database_principals
WHERE name LIKE 'some_pattern%'
OPEN DBLOGINS
FETCH NEXT FROM DBLOGINS INTO @LoginName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL = 'DROP LOGIN [' + @LoginName + ']'
EXEC sp_executesql @SQL
FETCH NEXT FROM DBLOGINS INTO @LoginName
END
CLOSE DBLOGINS
DEALLOCATE DBLOGINS
感谢p。如果没有更好的事情出现,我会这样做。我希望避免这个循环,但是如果只能一次完成一次,那就是我要做的。 – 2011-06-06 16:21:30