[英]Run sql script from another sql script
我要運行指定文件夾中的所有腳本。 我創建了包含腳本路徑的sql-cursor。
我想執行腳本並記錄它們的使用情況,但是如何在其他sql腳本中運行sql腳本。 在Visual Studio的sqlproj中使用了':r'語句,但是在我的情況下它不起作用,那么如何解決呢? 我使用SQL Server 2016。
FETCH NEXT FROM ScriptsFromFolderCursor INTO @scriptName
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @fullScriptPath nvarchar(1024) = @MyPath + @scriptName
-- WHAT SHOULD BE THERE ??
:r @fullScriptPath
-- log usage of script
INSERT INTO DeployedSqlScripts([ScriptName], [Version],[DateUtc])
VALUES (@fullScriptPath, @DbVersion, GetUtcDate())
FETCH NEXT FROM ScriptsFromFolderCursor INTO @scriptName
END
我收到錯誤消息:
錯誤SQL72001:包含的文件@fullScriptPath(C:\\ GIT \\ myPath \\ @FULLSCRIPTPATH)不存在。 (54、8)
不知道會收到什么錯誤,但是從外觀上看,您正在嘗試使用SQLCMD語句( :r
)
您是否已在SQLCMD模式下執行此腳本? 文檔-https://docs.microsoft.com/zh-cn/sql/tools/sqlcmd-utility
如果您願意使用T-SQL以外的腳本環境,則可以通過execsql.py( http://pypi.python.org/pypi/execsql )執行此操作。 INCLUDE元命令( http://pythonhosted.org/execsql/#include )將允許您在運行的腳本中插入另一個SQL腳本,以及將所有CSV文件導入目錄中的示例( http://pythonhosted.org/ execsql /#example13 )可以很容易地修改為用於在目錄中包含所有SQL腳本。
免責聲明:我寫了execsql.py。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.