Import
在 SSDT 中發布數據部署
我需要創建部署後腳本,它將數據從 .csv 文件上傳到我的數據庫。但我不明白我該怎麼做。
當我嘗試在我的伺服器上部署我的項目時,我收到此錯誤消息:
(2354,1):SQL72014:.Net SqlClient 數據提供者:消息 4861,級別 16,狀態 1,第 9 行無法批量載入,因為無法打開文件“.\Data\DataFile.csv”。作業系統錯誤程式碼 3(系統找不到指定的路徑。)。(2346,0):SQL72045:腳本執行錯誤。執行的腳本:
有人可以幫我嗎?
PS 下面你可以找到我的文件範例。
我的 SSDT 項目的結構:
Source Data DataFile.csv Script PostDeployment DataFile.sql PostDeployment.sql
數據文件.sql:
IF OBJECT_ID('tempdb..#t') IS NOT NULL DROP TABLE #t CREATE TABLE #t ( Column NVARCHAR(100), Column2 NVARCHAR(100) ) ; BULK INSERT #t FROM '$(DataFile)' WITH (CODEPAGE = '1251', FIRSTROW = 2, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n', DATAFILETYPE = 'widechar') SELECT * INTO table1 FROM #t AS tcbm
PostDeployment.sql
:setvar DataFile .\Data\DataFile.csv :r .\Script\PostDeployment\DataFile.sql
如果我更改
:setvar DataFile
為..\..\Data\CarBrandModel
- 部署也將失敗並出現相同的錯誤。
CSV 文件不包含在您部署的 dacpac 中,因此您需要確保使用 dacpac 複製它,並且如果您使用相對路徑,則工作目錄就是您認為的那樣。
我對額外文件所做的是將文件的“建構操作”設置為“如果較新則複製”,當 dacpac 建構在 bin 文件夾中時,您還將有一個“數據”子文件夾 - 只需確保將其複製到您的dacpac 總是。
和