在Sql Server 2005上获取OleDbSchemaTable外键

时间:2010-02-15 23:57:52

标签: c# .net sql-server schema oledb

我正在尝试在SQL Server 2005数据库中获取表的外键。我现在正在使用GetOleDbSchemaTable函数:

DataTable schemaTable = connection.GetOleDbSchemaTable(
        OleDbSchemaGuid.Foreign_Keys,
        new object[] { null, null, null, "TABLE" });

这会拉回正确的外键,唯一的问题是UpdateRule和DeleteRule设置为“No Action”。如果我浏览到SSMS中的同一个表,我可以看到我的DeleteRule是“Set NULL”。 GetOleDbSchemaTable函数是否未返回正确的外键规则?还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:0)

我不确定为什么OleDb会返回不正确的信息,但您是否尝试过使用SqlConnectionGetSchema?它们是MSSQL特定的,因此可能会产生更好的结果。