所以我使用 tsql 代码来运行一堆服务器,并在每个数据库中查找用户。我的问题是,在特定服务器上,有些数据库我无权访问,也不需要使用。当查询在它们上运行时,它会在整个服务器上停止并移动到下一个服务器。我一直在尝试找到一种从搜索中排除某些数据库的方法。
我想做的是
例如,在服务器 A 上排除了这些数据库 B、C、D 等。我试过 where <> 和 != 并且不起作用或者我的语法错误
USE MASTER
If OBJECT_ID('#TDB', 'U') > 0
Drop Table #TDB
DECLARE @dbname varchar(200),
@sql varchar(max)
CREATE TABLE #TDB (
DataBaseName nvarchar(200),
UserName nvarchar(200)
)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases WHERE DBID>4
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @dbname
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql='insert into #TDb(DataBaseName,UserName)
select '''+@dbname+''' DataBaseName,[user_name] UserName FROM '+@dbname+'.[dbo].[USERS] where'+@dbname+'<>[APSSWATCH]'
EXEC(@sql)
FETCH NEXT FROM db_cursor INTO @dbname
END
CLOSE db_cursor
DEALLOCATE db_cursor
SELECT * FROM #TDB ORDER BY DataBaseName,UserName
DROP TABLE #TDB