我试图从C#(VS 2012)
中获取LocalDB数据库中的所有表使用OleDbConnection时我可以
string[] restrictions = new string[4];
connection.GetSchema("Tables", restrictions);
它将返回所有用户表,所有系统视图和所有系统表
如何使用SqlConnection执行此操作? 似乎SqlConnection上的GetSchema只返回用户表和视图,但没有系统表或视图。第4个限制参数似乎只接受VIEW和BASE TABLE。
string[] restrictions = new string[4];
restrictions[3] = 'BASE TABLE";
connection.GetSchema("Tables", restrictions);
我可以使用此参数获取系统视图和表格的其他值吗? 或者是否有另一种方法可以使用SqlConnection检索系统视图和表?
我不能使用OleDbConnection,因为我必须使用LocalDB,似乎无法使用OleDbConnection连接到LocalDB。
答案 0 :(得分:0)
另一种方法是查询SQL Server目录视图。
SELECT
OBJECT_SCHEMA_NAME(object_id) AS SchemaName
, name AS ObjectName
, type_desc AS ObjectType
FROM sys.system_objects
WHERE
type_desc IN('USER_TABLE', 'SYSTEM_TABLE', 'VIEW')
UNION ALL
SELECT
OBJECT_SCHEMA_NAME(object_id) AS SchemaName
, name AS ObjectName
, type_desc AS ObjectType
FROM sys.objects
WHERE
type_desc IN('USER_TABLE', 'SYSTEM_TABLE', 'VIEW');