在我的sqlserver项目中,在不同的文件夹中有很多.sql文件
C:\用户名\ EtlcontrolDB \ scrip1.sql ......... script10.sql
C:\用户名\配置\ scrip1.sql ......... script10.sql
C:\用户名\想到...........................
我的客户端要求是,上面的文件夹包含通过单批脚本执行的sql文件。和来自.txt文件的cql文件名和文件路径输入以及C:\ username这个对于每个用户都是不同的,保留路径对所有用户来说都是相似的, 我还想完全执行一些文件夹和一些特定于文件夹的sql文件
任何人都可以帮我这个吗? 提前谢谢......
答案 0 :(得分: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()