在我的sqlserver项目中,在不同的文件夹中有许多.sql文件,比如
C:\username\EtlcontrolDB\scrip1.sql.........script10.sql
C:\username\configuration\scrip1.sql.........script10.sql
C:\用户名\认为...........................
我的客户要求是,上面的文件夹包含sql文件通过单个批处理脚本执行。和sql文件名和文件路径输入从.txt文件和C:\用户名这将是不同的每个用户,保持路径是相似的所有用户,而且我想执行一些文件夹完全和一些文件夹特定的sql文件。
有人能帮我解决这个问题吗?先谢谢你...
发布于 2014-04-26 22:07:14
仅使用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()https://stackoverflow.com/questions/13860892
复制相似问题