gpt4 book ai didi

sql-server - 在部署后 SQL 文件中指定相对路径

转载 作者:行者123 更新时间:2023-12-04 01:10:14 28 4
gpt4 key购买 nike

我们的 SQL Server 项目中有一个部署后脚本,它实质上是在创建表后执行 bulk-insert 来填充表。这是通过读取几个 .csv 文件来完成的:

BULK INSERT
[dbo].[Table1]
FROM '.\SubFolder\TestData\Data1.csv'
WITH
(
ROWTERMINATOR = '0x0a',
FIELDTERMINATOR = ','
)

BULK INSERT
[dbo].[Table2]
FROM '.\SubFolder\TestData\Data2.csv'
WITH
(
ROWTERMINATOR = '0x0a',
FIELDTERMINATOR = ','
)

问题是 Visual Studio 很难找到文件:

Cannot bulk load because the file ".\SubFolder\TestData\Data1.csv" could not be opened. 
Operating system error code 3(The system cannot find the path specified.).

.csv 文件已 checkin 源代码管理,当我转到它们在我的机器上映射到的文件夹时,我确实看到了它们。我假设问题是 . 没有返回正在执行的 sql 文件的当前路径。有没有办法获得相对路径?是否有宏(或者可能是 SQLCMD 变量)可以提供文件的当前路径?

最佳答案

您遇到的问题是 .csv 文件在您的 VS 项目中,但脚本将在 SQL Server 上执行,因此文件应该位于服务器可以访问的位置。也许,您可以添加一个预构建事件,将 .csv 文件复制到服务器上的共享驱动器,然后在脚本中使用静态路径从共享位置获取文件。

关于sql-server - 在部署后 SQL 文件中指定相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23923366/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com