Tôi đang sử dụng SSDT (và sqlproj) cho các dự án MSSQL của chúng tôi. Chúng tôi có một vài biến mà chúng tôi cần phải đặt khi xuất bản cho từng môi trường. Điều này hoạt động tốt trên hầu hết các môi trường của chúng tôi, nơi chúng tôi gán giá trị cho tất cả các biến, nhưng khi chúng tôi xuất bản lên cơ sở dữ liệu trực tiếp của chúng tôi, tôi muốn có thể làm cho DomainPrefix trở thành một chuỗi trống.Cách tạo SSDT Profile.xml SqlCmdVariable một chuỗi rỗng hoặc tùy chọn
Khi tôi cố gắng thay đổi tệp Live.profile.xml để đặt DomainPrefix thành không có giá trị, tôi nhận được lỗi: "Đã xảy ra lỗi trong quá trình tạo kế hoạch triển khai. Không thể tiếp tục. Thiếu giá trị cho các biến SqlCmd sau: DomainPrefix. "
Đây là những gì tôi muốn các Live.profile.xml để trông giống như:
<?xml version="1.0" encoding="UTF-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
<PropertyGroup>
<TargetDatabaseName>DB_NAME</TargetDatabaseName>
<DeployScriptFileName>DB_NAME.sql</DeployScriptFileName>
<TargetConnectionString>CONNECTION_STRING</TargetConnectionString>
<ProfileVersionNumber>1</ProfileVersionNumber>
</PropertyGroup>
<ItemGroup>
<SqlCmdVariable Include="DomainPrefix">
<Value></Value>
</SqlCmdVariable>
<SqlCmdVariable Include="Environment">
<Value>live</Value>
</SqlCmdVariable>
</ItemGroup>
</Project>
Có ai biết làm thế nào để thiết lập một SqlCmdVariable đến một giá trị trống hoặc làm cho nó một biến không bắt buộc?
Sử dụng:
- VS 2013 sqlproj
- SqlPackage.exe để chạy các xuất bản vào DB từ dòng lệnh
Bạn đang sử dụng DomainPrefix như thế nào? Đó có phải là một phần của tập lệnh Pre/Post, được sử dụng trong các đối tượng/mã, tên máy chủ, cái gì khác không?Nếu bạn chỉ sử dụng nó cho các tập lệnh Pre/Post, bạn có thể thao tác các tập lệnh đó tương ứng với một phần cho Sản xuất hơi khác một chút. –
DomainPrefix cụ thể đang được sử dụng trong một kịch bản bài đăng và chúng tôi có một số mã để xử lý nó - nhưng cũng là một trong số một số biến mà chúng tôi muốn đặt làm chuỗi trống, vì vậy sẽ rất hữu ích nếu bạn biết cách tạo nó trống/tùy chọn. – Saan
Tôi không biết cách nào để làm điều đó, đó là lý do tại sao tôi muốn chắc chắn rằng bạn chỉ sử dụng nó trong một kịch bản Post. Bạn có thể kiểm tra một số giá trị (ví dụ: "Prod") và để trống nếu trường hợp đó xảy ra và/hoặc tạo một phần cho Sản xuất. Tôi nghĩ rằng làm cho MS không bao giờ xem xét một biến trống vì điều đó có thể gây ra sự tàn phá nếu được sử dụng trong mã, đặc biệt là cho các tên DB. –