1

在我的 sqlserver 项目中,不同文件夹中有很多 .sql 文件,
例如 C:\username\EtlcontrolDB\scrip1.sql.........script10.sql
C:\username\configuration\scrip1.sql... ......script10.sql
C:\username\Think.......................

我的客户要求是,上面的文件夹包含通过单个批处理脚本执行的 sql 文件。从 .txt 文件中获取的 sql 文件名和文件路径输入以及 C:\username 这个对于每个用户都会有所不同,其余路径对所有用户都是相似的,我也想完全执行一些文件夹和一些文件夹特定的 sql 文件

谁能帮我解决这个问题?提前致谢...

4

1 回答 1

0

单独使用 sqlcmd 无法做到这一点。

您必须使用诸如 python 之类的语言编写批处理脚本,该脚本为存储在指定目录中的每个 .sql 文件调用 sqlcmd。这是 Python 中的一个示例(未经测试!):

import subprocess
from os import listdir
from os.path import isfile, join

def main():
    onlyfiles = [ f for f in listdir('C:\username\EtlcontrolDB\') if isfile(join('C:\username\EtlcontrolDB\',f)) ]
    for f in onlyfiles:
        sqlcmd(f)

def sqlcmd( file ):
    query = open(file).read()
    sqlcommand = 'sqlcmd -Q ' + query + ' -S "Myserver" -U UserName -P Password'
    subprocess.call(sqlcommand)

main()
于 2014-04-26T14:07:14.173 回答