Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

नेटवर्क के बाहर एसएसआईएस (एसक्यूएल सर्वर 2012) परियोजना को तैनात करना

आपके पास SSISDB कैटलॉग में .ispac फ़ाइलों को परिनियोजित करने के लिए 3 उपकरण हैं।

  1. ISDeploymentWizard.exe
  2. ManagedObjectModel
  3. टीएसक्यूएल

आप पहले से ही विज़ार्ड का उपयोग कर रहे हैं और यह लेख संबंधी समस्याओं के कारण काम नहीं कर रहा है। मुझे लगता है कि आपके MOM दृष्टिकोण के साथ भी, आप अभी भी प्रामाणिक मुद्दों में भाग लेंगे। यह टीएसक्यूएल दृष्टिकोण छोड़ देता है और चूंकि आपके पास वैध लॉगऑन है, उम्मीद है कि यह काम करेगा।

निम्न कोड आपके .ispac को क्रमबद्ध करेगा, यदि यह पहले से मौजूद नहीं है तो परिनियोजन फ़ोल्डर बनाएं, प्रोजेक्ट को परिनियोजित करें और फिर एक पैरामीटर मान निर्दिष्ट करें।

SSMS में, आपको अपने मोड को SQLCMD मोड में बदलना होगा जो क्वेरी मेनू के अंतर्गत उपलब्ध है। ऐसा करने के बाद, मैक्रो-चीज को लाने के लिए Ctrl-Shift-M दबाएं और यह आपको यह निर्दिष्ट करने की अनुमति देगा कि .ispac फ़ाइल कहां मिल सकती है।

USE SSISDB
GO

IF ('$(isPacPath)' = '$' + '(isPacPath)')
BEGIN
    THROW 50000, N'This script must be run in SQLCMD mode.', 1;
END
GO

-- You must be in SQLCMD mode
-- setvar isPacPath "C:\sandbox\SSDTDeploy\TSQLDeploy\bin\Development\TSQLDeploy.ispac"
:setvar isPacPath "<isPacFilePath, nvarchar(4000), C:\sandbox\SSDTDeploy\TSQLDeploy\bin\Development\TSQLDeploy.ispac>"



DECLARE
    @folder_name nvarchar(128) = 'TSQLDeploy'
,   @folder_id bigint = NULL
    -- this must match the ispac
,   @project_name nvarchar(128) = 'TSQLDeploy'
,   @project_stream varbinary(max)
,   @operation_id bigint = NULL;

-- Read the zip (ispac) data in from the source file
SELECT
    @project_stream = T.stream
FROM
(
    SELECT 
        *
    FROM 
        OPENROWSET(BULK N'$(isPacPath)', SINGLE_BLOB ) AS B
) AS T (stream);

-- Test for catalog existences
IF NOT EXISTS
(
    SELECT
        CF.name
    FROM
        catalog.folders AS CF
    WHERE
        CF.name = @folder_name
)
BEGIN
    -- Create the folder for our project
    EXECUTE [catalog].[create_folder] 
        @folder_name
    ,   @folder_id OUTPUT;
END

-- Actually deploy the project
EXECUTE [catalog].[deploy_project] 
    @folder_name
,   @project_name
,   @project_stream
,   @operation_id OUTPUT;

-- Check to see if something went awry
SELECT
    OM.* 
FROM
    catalog.operation_messages AS OM;

-- Use this to set parameters
-- http://msdn.microsoft.com/en-us/library/ff878162.aspx
EXECUTE catalog.set_object_parameter_value 
    -- Use the value 20 to indicate a project parameter 
    -- or the value 30 to indicate a package parameter
    @object_type = 20 
,   @folder_name = @folder_name
,   @project_name = @project_name
,   @parameter_name = N'' -- nvarchar(128)
,   @parameter_value = NULL -- sql_variant
,   @object_name = N'' -- nvarchar(260)
,   @value_type = '' -- char(1)
--  Use the character V to indicate that parameter_value is a literal value 
-- that will be used by default if no other values are assigned prior 
-- to execution. 
-- Use the character R to indicate that parameter_value is a referenced value 
-- and has been set to the name of an environment variable. 
-- This argument is optional, the character V is used by default

यदि आपने SQL पास शिखर सम्मेलन 2012 सम्मेलन में भाग लिया, तो मैंने इसे 2012 परिनियोजन मॉडल लेकिन मैंने पैरामीटर को कवर नहीं किया अंश। मेरा मानना ​​है कि अंतिम कॉल सही है लेकिन मैंने इसे सत्यापित नहीं किया है। मैंने प्रक्रिया कॉल के लिए दस्तावेज़ीकरण से लिंक किया है ताकि आप इसे अपनी विशिष्ट आवश्यकताओं के अनुरूप बना सकें।

नमूना पॉवरशेल कार्यान्वयन

अगस्त 2013 को अपडेट करें

मैंने अपने वर्तमान ग्राहक से कुछ सीखा है। हमारे पास हमारे लैपटॉप हैं जो होम डोमेन से जुड़े हुए हैं। क्लाइंट के AD नेटवर्क पर हमारे खाते हैं। जब भी मुझे क्लाइंट की दुनिया में कुछ "करने" की आवश्यकता होती है, तो मुझे अपनी प्रक्रिया शुरू करने और इसे अपने "विदेशी" प्रमाण-पत्र प्रस्तुत करने का निर्देश देने की आवश्यकता होती है। यह क्या संभव बनाता है RunAs . वैकल्पिक संदर्भ

मैंने बैच फ़ाइलों का एक सूट बनाया है जो मेरी ज़रूरत की हर प्रक्रिया को लॉन्च करता है। वे का रूप लेते हैं

runas /netonly:ForeignDomain\Doppelganger "C:\windows\system32\cmd.exe"

मेरे पास कमांड प्रॉम्प्ट (ऊपर), विजुअल स्टूडियो, एसएसएमएस, पावरशेल, पावरशेल आईएसई और कुछ अन्य विशिष्ट ऐप्स के लिए एक है जिन्हें अपने डोमेन के साथ काम करने की आवश्यकता है।

रनस दृष्टिकोण का उपयोग करके, मैं उपरोक्त सभी विधियों का उपयोग करके पैकेजों को तैनात करने में सक्षम हूं (साथ ही विदेशी प्रमाण-पत्रों के साथ चलाए जा रहे विजुअल स्टूडियो इंस्टेंस से सीधे तैनाती)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल सर्वर:जहां आवश्यक हो वहां विदेशी कुंजी पर इंडेक्स बनाएं

  2. Web2Py MSSQL से कनेक्ट नहीं होगा

  3. SQL सर्वर डेटाबेस में स्क्रिप्ट का उपयोग करके प्राथमिक कुंजी छोड़ें

  4. क्वेरी एसक्यूएल सर्वर 2005 द्वारा बिट प्रकार को हां या नहीं में कनवर्ट करें

  5. क्वेरी कोड में बहुत धीमी लेकिन SSMS में तेज़ है