Jiř*_*ník 13 t-sql sql-server visual-studio
我们有几个SQL脚本,它们是从实体模型生成的,它们需要以正确的顺序运行+有几个填充脚本,它们将一些测试数据插入到DB中.
现在我需要以正确的顺序打开visual studio中的每个脚本,然后单击执行SQL(ctrl shift E)
有没有办法创建像Master.sql和内部我想使用一些包含.就像是:
BEGIN TRANSACTION
ImportOrInclude myDB1.sql
ImportOrInclude myDB2.sql
...
COMMIT
Run Code Online (Sandbox Code Playgroud)
我只需要从visual studio运行它,这不会是应用程序本身的一部分.
怎么做?
编辑
我发现有一些名为SQLCMD的脚本可以导入SQL文件 http://msdn.microsoft.com/en-us/library/aa833281%28v=vs.80%29.aspx
但我的问题是如何将当前解决方案的目录路径放入:r命令
编辑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
Run Code Online (Sandbox Code Playgroud)
Nik*_*vić 14
提取你可能会觉得有趣:
-i input_file[,input_file2...]
Run Code Online (Sandbox Code Playgroud)
标识包含一批SQL语句或存储过程的文件.可以指定多个文件,这些文件将按顺序读取和处理.不要在文件名之间使用任何空格.sqlcmd将首先检查是否存在所有指定的文件.如果一个或多个文件不存在,sqlcmd将退出.
例:
sqlcmd -dDataBaseName -E -Stcp:ServerName\instancename -imaster.sql
Run Code Online (Sandbox Code Playgroud)
Master.Sql:
:r file1.sql
:r file2.sql
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14446 次 |
| 最近记录: |