簡體   English   中英

使用SqlBulkCopy,如何將數據插入到非默認數據庫模式的表中?

[英]Using SqlBulkCopy, how do I insert data into a table in a non-default database schema?

我需要使用SqlBulkCopy將數據插入名為Staging的模式中的表中。

API似乎只允許您使用DestinationTableName屬性設置目標表名。

我該如何做到這一點? 可能嗎?

雖然API不提供用於設置目標模式的顯式接口,但您實際上可以將2或3部分限定表名稱填充到DestinationTableName屬性中,如下所示:

b.DestinationTableName = string.Format("[{0}].[{1}]", schemaName, tableName);

要么

b.DestinationTableName =
    string.Format("[{0}].[{1}].[{2}]", databaseName, schemaName, tableName);

鑒於BULK INSERT始終支持完全限定的表名,這些單獨的組件從未進入API似乎是一個很大的疏忽。

此外,由於看起來DestinationTableName只是輸出到BULK INSERT語句中,因此該屬性可能容易受到SQL注入的攻擊。 因此,如果您在某個時刻從用戶那里獲得此信息,請確保在運行此操作之前清理輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM