有没有一种方法可以延长SqlConnection GetSchema()查询的超时时间?

4
我正在尝试发起的通话是:
DataTable dt = connection.GetSchema("Columns");

但是我在查询时遇到了超时问题。有没有办法延长此调用的超时时间?

连接到数据库本身已经打开,所以连接超时不会对我有任何帮助。

我也看到SqlCommand有一个CommandTimeout属性,但我不知道它是否适用于此处。

那么,有没有办法延长GetSchema调用的超时时间?非常感谢您的帮助!

2个回答

3

我猜测您当前的用户可能没有执行此命令所需的权限。

您尝试过了吗:

DataTable dt = connection.GetSchema("Columns", new string[] {null, null, "MyTable");

这有什么结果吗?

另外,您应该尝试使用用户描述来避免所有sys表。这可能会使查询变得更小。

DataTable dt = connection.GetSchema("Columns", new string[] {null, "dbo", null);

1
谢谢您的回复!这可能是正确的方法。我们的客户正在尝试从一个非常大的数据库中获取模式,这导致了超时问题。过滤查询应该能够使事情变得更加顺畅。 - athom

3

不,无法更改 .getschema() 的超时时间。我认为它是有意设计成这样的,尽管我不知道原因。默认超时时间为180秒。

但是,您可以使用sqlcommand查询模式表以获取相同的信息,在其中可以使用超时时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接