我需要创建集成检查版本,该版本还可以检查对数据库执行更新skripts时是否不会引发错误(Microsoft SQL Server 2008 R2)
我无法弄清楚如何执行从特定文件夹到测试数据库的所有SQL文件?
有什么建议怎么做?
在我们旧的TFS 2010中,已经有人为此创建了库,并在MSbuild中进行了这样的配置。
<Project DefaultTargets="DesktopBuild" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<UsingTask TaskName="PP.Builder.VersionUpdateTask" AssemblyFile="PP.Builder.dll"/>
<UsingTask TaskName="PP.DbUpdater.Library.DbBuildTask" AssemblyFile="PP.DbUpdater.Library.dll"/>
.....
.....
<Target Name="AfterGet">
<Exec Command="$(TF) get /noprompt /all $(AssemblyInfoFile)"/>
</Target>
<Target Name="AfterCompile">
<DbBuildTask DbServer="TestServer\sql2008r2" DbBackupPath="c:\beckUp backups" DbName="empty" ScriptsPath="$(SolutionRoot)\Proj\dev\PP.Veyron.Db" UpdateVersionNumber="false" UpdateVersionNumberYesterday="false" TestOnly="true" SkipDbBackup="false"/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
任何想法如何将其转移到TFS2015 vNext构建系统?
Powershell脚本可用于执行SQL脚本。因此,您可以在构建模板中添加Powershell脚本步骤,该脚本应如下所示:
#Provide SQLServerName
$SQLServer ="MySQLSErver\InstanceName"
#Provide Database Name
$DatabaseName ="Test"
#Scripts Folder Path
$FolderPath ="C:\MyScripts\Test\"
#Loop through the .sql files and run them
foreach ($filename in get-childitem -path $FolderPath -filter "*.sql")
{
invoke-sqlcmd –ServerInstance $SQLServer -Database $DatabaseName -InputFile $filename.fullname
#Print file name which is executed
$filename
}
Run Code Online (Sandbox Code Playgroud)
请参阅博客:http : //www.techbrothersit.com/2015/08/how-to-execute-sql-files-from-directory.html
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |