Trong ứng dụng của tôi, tác vụ kịch bản được tạo tự động.Đặt mã Tác vụ Script động trong SSIS 2012
Trong triển khai SSIS 2008 của SQL Server 2008, phương pháp sau đây hoạt động tốt.
private void SetSourceCode(ScriptTask scriptTask, string code, string codeName)
{
string fileName = "ScriptMain.vb";
string language = "VisualBasic";
string proj = ".vbproj";
scriptTask.ScriptLanguage = VSTAScriptLanguages.GetDisplayName(language);
scriptTask.ScriptingEngine.InitNewScript(language,
scriptTask.ScriptProjectName, proj);
scriptTask.ScriptingEngine.ShowDesigner(false);
scriptTask.ScriptingEngine.AddCodeFile(fileName, code);
if (!scriptTask.ScriptingEngine.Build())
throw new Exception("Failed to build vb script code: " + codeName);
scriptTask.ScriptingEngine.SaveScriptToStorage();
if (!scriptTask.ScriptingEngine.CloseIDE(false))
{
throw new Exception("Unable to close Scripting engine.");
}
}
Làm thế nào để di chuyển mã này vào SQL Server 2012, vì phương pháp sau đây được lấy từ SQL Server 2012 dll-s (cụm):
- InitNewScript
- AddProjectReference
- AddCodeFile
- SaveScriptToStorage
- ĐóngIDE
- Xây dựng
- ShowDesigner
Nói chung, làm thế nào để tự động thiết lập mã nguồn cho nhiệm vụ kịch bản trong SQL Server 2012?
+1 và một ngôi sao cho bạn vì tôi chưa bao giờ cố gắng thực hiện việc này. Tài liệu tôi tìm thấy đề cập đến [ScriptingEngine] (http://technet.microsoft.com/en-us/library/microsoft.sqlserver.dts.tasks.scripttask.vstataskscriptingengine.aspx) và nói "API này hỗ trợ SQL Server Cơ sở hạ tầng năm 2012 và không có ý định được sử dụng trực tiếp từ mã của bạn "vì vậy tôi không được tìm kiếm đủ cứng. Điều đáng tiếc là tôi có những vụ cháy sản xuất để tham dự, điều này nghe có vẻ như là một thách thức thú vị – billinkc
Để đẩy bạn đi đúng hướng (vì tôi chỉ thực hiện điều này cho các thành phần Script chứ không phải các tác vụ Script) có giao diện VSTA mới cho SSIS 2012, Lớp VSTAHelper - http://tinyurl.com/vstahelper - nơi tất cả các phương pháp của bạn đã đi. –