Skip to content

Commit 9dd1272

Browse files
committed
修复 ExecuteSqlBulkCopy() 对于表名有空格的情况处理异常 #2055
ExecuteSqlBulkCopy() 对于表名 'tb topic' 有空格的情况拼接sql语句有错误,没正确添加 [tb topic] 中括号 #2055 如果 dt.TableName 包含空格并且前后没有[]符号, 则前后加上 [ ] 符号
1 parent 4f1783e commit 9dd1272

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

Providers/FreeSql.Provider.SqlServer/SqlServerExtensions.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,10 @@ public static void ExecuteSqlBulkCopy<T>(this IInsert<T> that, SqlBulkCopyOption
8282
{
8383
if (batchSize.HasValue) bulkCopy.BatchSize = batchSize.Value;
8484
if (bulkCopyTimeout.HasValue) bulkCopy.BulkCopyTimeout = bulkCopyTimeout.Value;
85-
bulkCopy.DestinationTableName = dt.TableName;
85+
bulkCopy.DestinationTableName =
86+
dt.TableName.IndexOf(' ') >= 0 && !(dt.TableName.StartsWith("[") && dt.TableName.EndsWith("]"))
87+
? $"[{dt.TableName}]"
88+
: dt.TableName;
8689
for (int i = 0; i < dt.Columns.Count; i++)
8790
bulkCopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
8891
bulkCopy.WriteToServer(dt);

0 commit comments

Comments
 (0)