我们有几个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) 有没有办法如何装饰datacontract对象的属性,所以生成的xsd将包含MaxLenght限制?
我可以想象我需要这样的东西:
[XmlElement(MaxLengthAttribute = "12")]
public string Name;
Run Code Online (Sandbox Code Playgroud)
这样的东西应该包含在xsd.exe的输出中:
<xs:element name="name">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:maxLength value = "12"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)
有办法吗?要以这种方式定义C#类中的限制,xsd.exe工具会生成对xsd文件的限制吗?