回答
我敢肯定有一个“好”的方式,但这个工程:
SELECT * FROM sys.databases
where owner_sid != 1
最简单的方法是
exec sp_databases
但是,其中将包括系统数据库,所以你需要手动排除。不知道是否有一个不同的系统sproc会为你做。
虽然你可以使用
select * from sys.databases
我敢肯定的owner_sid字段不是一个系统数据库的可靠指标,获得更多的扩展信息,因为我有两个系统,有些用户在相同的SID数据库在我的服务器上。
SELECT name, owner_sid
FROM sys.databases
owner_sid应该提供足够的信息来区分,但我发现我的Oslo_Repository希德也被指定为1 ,所以它可能不是100%可靠的。
您查询sys.databases并删除系统。真正的系统数据库是master
,tempdb
,model
(即,db_id1,2和3)和mssqlsystemresource
。然而mssqlsystemresource
有一些魔术背后,似乎并不存在。另一方面大家可以将SQL引擎也认为是msdb
也是一个系统数据库。所以查询将是这样的:
select * from sys.databases
where name not in (N'master', N'tempdb', N'model', N'msdb')
btw还有其他的'ambiguos'数据库,比如replicaiton分发数据库,ReportServer和ResportServerTempDB。 – 2009-08-14 19:20:46
+1我认为这是一个更好的解决方案。 – 2011-02-10 00:16:37
SELECT [name]
FROM master.dbo.sysdatabases
WHERE dbid > 6
- 1. 如何在sql server 2005中获取用户创建的模式
- 2. 在SQL Server 2005中创建数据库
- 3. 如何重建SQL Server 2005中的所有数据库
- 4. 如何在sql server 2005上使用c#vs08创建数据库
- 5. 在SQL Server 2005中使用T-SQL创建数据库别名
- 6. 如何获取SQL SERVER数据库中所有表的行数
- 7. 如何在SQL Server中创建数据库的数据库图
- 8. Sql server 2005如何从数据库的转储创建数据库
- 9. 如何在SQL Server 2005中恢复SQL SERVER 2008数据库
- 10. 如何在sql server 2005中编写sql server数据库图表?
- 11. 在SQL Server 2005 Express中创建家庭数据库服务器
- 12. 在SQL Server 2005主数据库中创建表
- 13. 如何从SQL Server获取数据库转储2005
- 14. 获取在SQL Server 2005中
- 15. 在SQL Server中获取所有数据库大小的总和
- 16. SQL Server:如何创建数据库中所有数据的脚本
- 17. 删除SQL Server 2005数据库中的所有行
- 18. 如何获取SQL Server CE 2005的创建脚本表
- 19. 如何从数据库中获取所有用户数据?
- 20. 查询来获取数据库的SQL Server 2005中
- 21. 如何用用户创建SQL Server数据库?
- 22. SQL Server 2005如何查找拥有所有图书的用户
- 23. 在SQL Server 2005中压缩数据库
- 24. 如何创建ELMAH SQL Server数据库?
- 25. 如何编写创建取决于其在SQL Server参数2005
- 26. 如何使用tsql获取SQL Server实例中的所有数据库名称?
- 27. 将所有者添加到SQL Server 2005数据库中
- 28. 如何从ASP.NET代码创建Sql Server数据库用户
- 29. 如何在SQL Server 2014上创建SQL Server 2012数据库?
- 30. 如何获取现有sql 2005/2008数据库的dbschema文件?
对我的作品在SQL Server 2005 – Rajesh 2009-08-13 07:38:09
这将显示所有数据库这里的主人是不是“山”的登录。所以,如果你的用户数据库的所有者是'sa',那么他们也将被排除在外。 – firedfly 2011-02-09 20:56:08