Sql server 以编程方式使用SSDT导入数据库
在这种情况下,我需要复制数据库中的所有内容(数据除外),并将其部署到新数据库中。我目前正在通过将现有数据库导入到SSDT中,然后将项目发布到新数据库来实现这一点 我想知道是否有一种方法可以通过编程实现。理想情况下,我希望有一个适当的流程,我可以给流程指定要复制的数据库的名称,要复制到的数据库的名称,然后流程将自动执行导入和导出 做这件事的好方法是什么? [2] :在代码中运行此脚本Sql server 以编程方式使用SSDT导入数据库,sql-server,database,deployment,sql-server-data-tools,Sql Server,Database,Deployment,Sql Server Data Tools,在这种情况下,我需要复制数据库中的所有内容(数据除外),并将其部署到新数据库中。我目前正在通过将现有数据库导入到SSDT中,然后将项目发布到新数据库来实现这一点 我想知道是否有一种方法可以通过编程实现。理想情况下,我希望有一个适当的流程,我可以给流程指定要复制的数据库的名称,要复制到的数据库的名称,然后流程将自动执行导入和导出 做这件事的好方法是什么? [2] :在代码中运行此脚本 我希望它能对你有所帮助,但我想说最简单的方法是为redgate sqlcompare购买一个许可证,并使用该许可证
我希望它能对你有所帮助,但我想说最简单的方法是为redgate sqlcompare购买一个许可证,并使用该许可证的命令行版本。SSDT由一个名为数据层应用程序框架(也称为DacFX)的库提供支持。DacFX是一个公共API,可用于提取和发布dacpac文件。您可以在Visual Studio或SQL Server下的程序文件中找到DacFX的副本,其目录如下:
- C:\ProgramFiles(x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130
- C:\ProgramFiles(x86)\Microsoft SQL Server\130\DAC\bin
C:\ProgramFiles(x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe/a:extract/scs:“数据源=YOURSERVER;初始目录=YOURDB;集成安全=true”/tf:C:\temp\YOURDB.dacpac
C:\ProgramFiles(x86)\Microsoft SQL Server\130\DAC\bin\SqlPackage.exe/a:publish/tcs:“数据源=YOURSERVER;初始目录=YOUROTHERDB;集成安全=true”/sf:C:\temp\yourdb.dacpac
或者,您可以使用Microsoft.SqlServer.Dac API以编程方式使用DacFX,如下所示:
使用Microsoft.SqlServer.Dac;
班级计划
{
静态void Main(字符串[]参数)
{
DacServices=newdacservices(“数据源=YOURSERVER;初始目录=YOURDB;集成安全=true”);
提取(@“C:\temp\yourdb.dacpac”、“yourdb”、“AppName”、new System.Version());
使用(DacPackage dp=DacPackage.Load(@“C:\temp\yourdb.dacpac”))
{
部署(dp,“YOUROTHERDB”);
}
}
}
谢谢,但我想通过编程来解决这个问题