T SQL指令碼中引用當前指令碼目錄

2021-09-05 20:37:26 字數 803 閱讀 9779

有時候,我們在t-sql指令碼中,需要引用到當前指令碼檔案所在的資料夾目錄。例如在備份操作,或者匯入程式集這種操作。那麼該如何處理呢?

1. 首先要意識到t-sql指令碼中是沒有辦法動態取得乙個目錄的。所以,思路就是在指令碼的執行之前要傳入該目錄。那麼怎麼傳過來呢?這個可以利用sqlcmd工具的乙個新特性,使用引數化的執行。請注意下面的-v引數

2. 其次,然後我們怎麼在執行的時候,傳入當前的路徑呢?我們一般都會有乙個cmd或者bat檔案(批處理檔案)。在批處理中,通過乙個特殊變數可以取得當前的目錄:%cd%,考慮到目錄中可能會有空格,應該寫為:"%cd%」

例如:sqlcmd -e -v currentdir="%cd%" -i "%cd%\helloworld\install.sql"

這個指令碼的意思是,呼叫當前批處理檔案目錄下面的乙個helloworld目錄下面的install.sql,並且將當前的目錄,傳遞到install.sql檔案中替換掉裡面的currentdir這個變數。

我們來看看install.sql中是怎麼寫的

-- install assemblies

create assembly brokerlibraryassembly

from '$(currentdir)\..\..\servicebrokerinte***ce\cs\servicebrokerinte***ce\bin\debug\servicebrokerinte***ce.dll'

go

獲取當前指令碼目錄路徑

for name in os.listdir if name self.cookie file os.remove str self.cookie file windows獲取當前路徑 相對路徑 以當前根目錄為基準 最近的source 路徑 import os from pathlib import...

Python 獲取當前指令碼檔案路徑目錄

coding cp936 importsys,os 獲取指令碼檔案的當前路徑 defcur file dir 獲取指令碼路徑 path sys.path 0 判斷為指令碼檔案還是py2exe編譯後的檔案,如果是指令碼檔案,則返回的是指令碼的目錄,如果是py2exe編譯後的檔案,則返回的是編譯後的檔案...

Python 獲取當前指令碼檔案路徑目錄

coding cp936 import sys,os 獲取指令碼檔案的當前路徑 def cur file dir 獲取指令碼路徑 path sys.path 0 判斷為指令碼檔案還是py2exe編譯後的檔案,如果是指令碼檔案,則返回的是指令碼的目錄,如果是py2exe編譯後的檔案,則返回的是編譯後的...