Sử dụng khung pháp nhân 4.3.1 Mã đầu tiên và Di chuyển dữ liệu.Làm cách nào để ghi đè tập lệnh SQL được tạo bởi MigratorScriptingDecorator
Tôi đã viết một tiện ích để tự động tạo tập lệnh di chuyển cho cơ sở dữ liệu đích, sử dụng MigratorScriptingDecorator.
Tuy nhiên, đôi khi khi tạo lại cơ sở dữ liệu đích từ đầu, tập lệnh được tạo không hợp lệ, trong đó nó khai báo biến có cùng tên hai lần.
Tên biến là @ var0.
Điều này dường như xảy ra khi có nhiều lần di chuyển được áp dụng và khi ít nhất hai kết quả trong giới hạn mặc định bị loại bỏ.
Vấn đề xảy ra cả khi tạo mã hình thức kịch bản, và khi sử dụng Package Manager console lệnh:
Update-Database -Script
Dưới đây là các đoạn vi phạm hình thức kịch bản được tạo ra:
DECLARE @var0 nvarchar(128)
SELECT @var0 = name
FROM sys.default_constraints
WHERE parent_object_id = object_id(N'SomeTableName')
và
DECLARE @var0 nvarchar(128)
SELECT @var0 = name
FROM sys.default_constraints
WHERE parent_object_id = object_id(N'SomeOtherTableName')
Tôi muốn có thể ghi đè điểm mà địa điểm đó nerates SQL cho mỗi di chuyển, và sau đó thêm một "GO" tuyên bố để mỗi di chuyển là trong một lô riêng biệt, mà sẽ giải quyết vấn đề.
Bất cứ ai có ý tưởng làm thế nào để làm điều này, hoặc nếu tôi sủa cây sai thì có lẽ bạn có thể đề xuất một cách tiếp cận tốt hơn?
bạn có nghĩ rằng một workaround tương tự có thể có thể cho sql tạo ra cho chèn bảng trực tiếp bình thường không? –