ScriptTask.PreCompile Property

Gets or sets a value indicating whether the VSA script is compiled when the package is saved.

Namespace: Microsoft.SqlServer.Dts.Tasks.ScriptTask
Assembly: Microsoft.SqlServer.ScriptTask (in microsoft.sqlserver.scripttask.dll)


Public Property PreCompile As Boolean
public bool PreCompile { get; set; }
property bool PreCompile {
    bool get ();
    void set (bool value);
/** @property */
public boolean get_PreCompile ()

/** @property */
public void set_PreCompile (boolean value)
public function get PreCompile () : boolean

public function set PreCompile (value : boolean)

Property Value

true if the VSA script is compiled when the package is saved; otherwise, false. The default value is true.


VSA scripts must be compiled before the package runs. The Script task includes the option to pre-compile script into binary code when the package is saved. When script is precompiled, the language engine is not loaded at run time and the package runs more quickly; however, compiled binary files consume significant disk space. Script that is not precompiled is compiled at run time, which slows package execution but consumes less disk space. When storing large packages is not a problem, you should pre-compile your VSA scripts.


The following code sample, implemented in a console application, adds a ScriptTask to the package and displays the default values of some of its properties, including the PreCompile property.

using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace ScriptTaskCS
  class Program
    static void Main(string[] args)
      Package pkg = new Package();
      string newLine = System.Environment.NewLine;

      Executable exe = pkg.Executables.Add("STOCK:ScriptTask");
      TaskHost thTask = (TaskHost)exe;

      string taskInfo;
      taskInfo = 
        "Project name: " + 
        thTask.Properties["VsaProjectName"].GetValue(thTask) + newLine + 
        "Entry point: " + 
        thTask.Properties["EntryPoint"].GetValue(thTask) + newLine + 
        "Script Language: " + 
        thTask.Properties["ScriptLanguage"].GetValue(thTask) + newLine + 
        "Precompiled?: " + 
        thTask.Properties["PreCompile"].GetValue(thTask) + newLine + 
        "ReadOnlyVariables: " + 
        thTask.Properties["ReadOnlyVariables"].GetValue(thTask) + newLine + 
        "ReadWriteVariables: " + 

Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

  Sub Main()

    Dim pkg As New Package
    Dim newLine As String = System.Environment.NewLine

    Dim exe As Executable = pkg.Executables.Add("STOCK:ScriptTask")
    Dim thTask As TaskHost = CType(exe, TaskHost)

    Dim taskInfo As String
    taskInfo = "Project name: " & _
      thTask.Properties("VsaProjectName").GetValue(thTask) & newLine & _
      "Entry point: " & _
      thTask.Properties("EntryPoint").GetValue(thTask) & newLine & _
      "Script Language: " & _
      thTask.Properties("ScriptLanguage").GetValue(thTask) & newLine & _
      "Precompiled?: " & _
      thTask.Properties("PreCompile").GetValue(thTask) & newLine & _
      "ReadOnlyVariables: " & _
      thTask.Properties("ReadOnlyVariables").GetValue(thTask) & newLine & _
      "ReadWriteVariables: " & _


  End Sub

End Module

Thread Safety

Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


Development Platforms

For a list of the supported platforms, see Hardware and Software Requirements for Installing SQL Server 2005.

Target Platforms

For a list of the supported platforms, see Hardware and Software Requirements for Installing SQL Server 2005.

See Also


ScriptTask Class
ScriptTask Members
Microsoft.SqlServer.Dts.Tasks.ScriptTask Namespace