修复 ExecuteSqlBulkCopy() 对于表名有空格的情况处理异常 #2055

ExecuteSqlBulkCopy() 对于表名 'tb topic' 有空格的情况拼接sql语句有错误,没正确添加 [tb topic] 中括号 #2055

如果 dt.TableName 包含空格并且前后没有[]符号, 则前后加上 [ ] 符号
This commit is contained in:
Alex chow
2025-07-03 23:46:03 +02:00
parent 4f1783e805
commit 9dd1272416

View File

@@ -82,7 +82,10 @@ public static partial class FreeSqlSqlServerGlobalExtensions
{
if (batchSize.HasValue) bulkCopy.BatchSize = batchSize.Value;
if (bulkCopyTimeout.HasValue) bulkCopy.BulkCopyTimeout = bulkCopyTimeout.Value;
bulkCopy.DestinationTableName = dt.TableName;
bulkCopy.DestinationTableName =
dt.TableName.IndexOf(' ') >= 0 && !(dt.TableName.StartsWith("[") && dt.TableName.EndsWith("]"))
? $"[{dt.TableName}]"
: dt.TableName;
for (int i = 0; i < dt.Columns.Count; i++)
bulkCopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
bulkCopy.WriteToServer(dt);