如何迭代和导出SQL Server数据库中的所有表?

时间:2015-01-26 08:49:56

标签: c# sql-server

我们的测试跟踪被写入SQL Server数据库,以便每个测试都获得它自己的表:log_table_<test_name>

所有跟踪都写入同一数据库。

是否有迭代所有表并通过C#将每个表导出到文件?

2 个答案:

答案 0 :(得分:1)

只需通过tables启动查询,您将获得与您的测试表名称格式匹配的所有表格:

select *
from   information_schema.tables
where  table_name like 'log_table_%'

另一种选择是使用sys.all_objects

select *
from   sys.all_objects
where  type = 'U'
and    name like 'log_table_%'

您可以检查数据集中返回的列,或查看information_schema.columnssys.all_columns视图中的列名称。

答案 1 :(得分:0)

您可以使用SqlConnection.GetSchema方法检索所有表格,例如以下

sqlConnection.Open();
DataTable tables = sqlConnection.GetSchema("Tables");
sqlConnection.Close();

请注意,返回的数据表包含表和视图,但是有一个列table_type,它告诉您它是VIEW还是BASE TABLE。