gpt4 book ai didi

c# - SMO 中的连接超时

转载 作者:太空狗 更新时间:2023-10-30 01:06:34 25 4
gpt4 key购买 nike

我正在向数据库中插入大量行并尝试在其上建立主键。如果我创建表并立即建立一个键,即使使用 SQLBulkCopy 命令,插入数据也需要 10 倍的时间。所以这不是一个可行的选择。我现在要做的是插入数据,全部插入后,使用 SMO 创建主键。问题是,即使连接字符串中的超时设置为 0,我仍然在 alter() 命令上收到超时异常。关于如何解决这个问题的任何想法?

connectionString.ConnectTimeout = 0;

ServerConnection scon = null;
using (SqlConnection conn = new SqlConnection(connectionString.ConnectionString))
{
conn.Open();
try
{
scon = new ServerConnection(conn);
Console.WriteLine("Server Connection Timeout: " + scon.ConnectTimeout);
Server serv = new Server(scon);
Database db = serv.Databases[connectionString.InitialCatalog];
Table table = db.Tables[tableName];
Index i = new Index(table, "pk_" + table.Name);
i.IndexKeyType = IndexKeyType.DriPrimaryKey;
foreach (String s in PrimaryKey)
{
i.IndexedColumns.Add(new IndexedColumn(i, s.Trim()));
}
table.Indexes.Add(i);
table.Alter();
scon.Disconnect();
}
finally
{
conn.Close();
}
}

最佳答案

显然 ServerConnection 也有一个语句超时。 SMO 充满了这些隐藏的超时。包括 SQLBulkCopy。但是,感谢@Derek 指出了这一点。答案是您必须设置 StatementTimeout = 0。我现在正在对此进行测试,但它似乎就是答案。

How to set CommandTimeout

http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.common.serverconnection.statementtimeout.aspx

关于c# - SMO 中的连接超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15006015/

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