[英]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.