如何在sql文件中包含sql文件? MS SQL
问题描述:
我们有几个SQL脚本,它们是从实体模型生成的,它们需要以正确的顺序运行+有几个填充脚本,它们将一些测试数据插入到数据库中。如何在sql文件中包含sql文件? MS SQL
现在我需要在正确的顺序Visual Studio中打开这些所有的脚本,然后单击执行SQL(CTRL移E)
有没有一种方法来创建类似Master.sql和里面我想用一些包括。像这样:
BEGIN TRANSACTION
ImportOrInclude myDB1.sql
ImportOrInclude myDB2.sql
...
COMMIT
我需要这只从视觉工作室运行,这不会是应用程序本身的一部分。
如何做到这一点?
编辑
我发现有个东西叫SQLCMD脚本,可以导入SQL文件 http://msdn.microsoft.com/en-us/library/aa833281%28v=vs.80%29.aspx
但我的问题是,那么如何获取当前解决方案的目录路径进入: ř命令
编辑2
所以我发现如何去做,并不完美,但工作。 糟糕的是$(SolutionDir)没有从VS变量中加载,所以你需要手动设置它。 此代码是指在Visual Studio中运行:
-- turn on in menu: Data -> Transact SQL editor -> SQL CMD mode
-- set this to path where the .sln file is.
:setvar SolutionDir C:\_work\projectname\
:!! echo $(SolutionDir)Maa.EntityModel.All\DbWEntityModel.edmx.sql
:r $(SolutionDir)Maa.EntityModel.All\DbWEntityModel.edmx.sql
go
:!! echo $(SolutionDir)Maa.EntityModel.All\DblQEntityModel.edmx.sql
:r $(SolutionDir)Maa.EntityModel.All\DbQEntityModel.edmx.sql
go
答
提取您可能会感兴趣:
-i input_file[,input_file2...]
标识包含一批SQL语句或存储过程的文件。可以指定多个文件,这些文件将按顺序读取和处理。不要在文件名之间使用任何空格。 sqlcmd将首先检查是否存在所有指定的文件。如果一个或多个文件不存在,sqlcmd将退出。
例子:
sqlcmd -dDataBaseName -E -Stcp:ServerName\instancename -imaster.sql
Master.Sql:
:r file1.sql
:r file2.sql
答
使用随SQL Server来做到这一点的Business Intelligence Development Studio。创建一个新的SSIS包。在这个包里面,为每个文件在控制流中创建几个Execute SQL Tasks
,并设置SQLSourceType
到FileConnection
并选择你的文件。
谢谢你,但我不工作。只有:r – 2012-03-07 10:21:22
确实如此,我刚刚测试过它。 – 2012-03-07 10:45:06
我试图使用包含在visual studio中的sql命令,它以不同的方式工作 – 2012-03-07 10:52:28