gpt4 book ai didi

.net - 以编程方式获取表的外键约束

转载 作者:行者123 更新时间:2023-12-02 15:09:59 25 4
gpt4 key购买 nike

我正在尝试使用 DataTable 来获取 SQL Server DB 的架构。
但是,当尝试检测外键时,约束集合仅带来唯一约束。

Private Sub ShowConstraints(ByVal tableName As String)

Dim table As DataTable = New DataTable(tableName)
Using connection As SqlConnection = New SqlConnection(GetConnectionString)

Dim adapter As SqlDataAdapter = New SqlDataAdapter("Select top 1 * from " + _
tableName, connection)
connection.Open()
adapter.FillSchema(table, SchemaType.Mapped)

For Each c As Constraint In table.Constraints
If TypeOf c Is ForeignKeyConstraint Then
Dim fk As ForeignKeyConstraint = CType(c, ForeignKeyConstraint)
Console.WriteLine("** FK ** relatedTable: {0}; RelatedColumns: {1}", _
fk.RelatedTable, fk.RelatedColumns)
Else
Console.WriteLine("** Whatever ** Name: {0}; Type: {1}", _
c.ConstraintName, c.GetType.ToString)
End If
Next

End Using


End Sub

如何获取外键约束?

最佳答案

嗯,这是出乎意料的。事实证明,FillSchema 方法毕竟没有返回外键信息。我有一些示例代码,看起来应该可以做到这一点,但事实并非如此。

如果您真正想要的是一种编程方式来查询数据库中的所有 FK,那么请在代码中尝试此系统存储过程。

msdb.dbo.sp_Help '表名'

它返回一个数据集。第 7 个表包含表的所有约束,包括 FK。

关于.net - 以编程方式获取表的外键约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/937732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com