有没有办法通过SQL请求列出Sql Server实例中的所有现有数据库?
更常见的是,我可以使用SQL来完全读取数据库的模式(表,列,...)?
谢谢
Jerome Wagner
答案 0 :(得分:1)
是。请参阅Information Schema Views和sys.databases。
这是一个可能有用的表定义脚本。 http://www.builderau.com.au/program/sqlserver/soa/Script-Table-definitions-using-TSQL/0,339028455,339293405,00.htm
答案 1 :(得分:1)
您可以通过以下查询获得大量信息:
SELECT * FROM sys.databases
use Northwind
select * from sys.objects where type_desc = 'USER_TABLE'
SELECT t1.name [table], t2.*
FROM sys.objects t1
inner join sys.columns t2 on t1.object_id = t2.object_id
where type_desc = 'USER_TABLE'
sp_help 'Customers' -- Customers = tablename
答案 2 :(得分:0)
是的,Sp_msforeachdb
,还有一个sp_msforeachtable
。您可以使用它们来迭代检索所有数据库中的所有表,并获得您想要的结果。
https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/datacenter/?p=395
答案 3 :(得分:0)
尝试使用存储过程sp_databases获取所有db
的列表