如何获取t sql中的相对路径?例如,一个.sql文件位于文件夹D:\ temp中,我想在文件夹D:\ temp\App_Data中获取文件hello.txt的路径.如何使用相对路径引用?
假设我正在SQL服务器管理工作室内执行sql文件.
我有一个类似的问题,并使用sqlcmd变量和%CD%伪变量解决了它.进行了一些试验和错误,以结合所有的部分.但最终还是把它全部搞定了.此示例期望该script.sql文件与该文件位于同一目录中runscript.bat.
runscript.bat
sqlcmd -S .\SQLINSTANCE -v FullScriptDir="%CD%" -i script.sql -b
Run Code Online (Sandbox Code Playgroud)
script.sql
BULK INSERT [dbo].[ValuesFromCSV]
FROM '$(FullScriptDir)\values.csv'
with
(
fieldterminator = ',',
rowterminator = '\n'
)
go
Run Code Online (Sandbox Code Playgroud)
.sql文件只是....一个文件.它没有任何自己的位置感.它可以解决它(你没有指定),它可以了解它的位置,文件的位置.
我注意到你提到了一个App_Data文件夹,所以我猜想涉及ASP.NET.如果要在Web应用程序中使用相对路径,请参阅MapPath
http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx
服务器正在执行 t-sql。它不知道客户端从哪里加载文件。您必须在脚本中嵌入路径。
DECLARE @RelDir varchar(1000)
SET @RelDir = 'D:\temp\'
...
Run Code Online (Sandbox Code Playgroud)
也许您可以以编程方式将路径放入 .sql 脚本文件中的 SET 命令中,或者您可以使用 sqlcmd 并将相关目录作为变量传入。
| 归档时间: |
|
| 查看次数: |
13698 次 |
| 最近记录: |