SQL Server 2000 DTS Designer components are required to edit DTS packages

Applies to: SQL Server 2008 DeveloperSQL Server 2008 EnterpriseWindows Vista Business

Symptoms


In Windows Vista or Windows 7 (both x64 and x86) based systems, when you try to edit the DTS 2000 package in SQL Server Management Studio (Microsoft SQL Server 2008/2008 R2) the following error may be displayed when you open the package: 

Error:
SQL Server 2000 DTS Designer components are required to edit DTS packages. Install the special Web download, "SQL Server 2000 DTS Designer Components" to use this feature. (Microsoft Visual Studio)

Also, when you try to edit the package within an Execute DTS package task from BIDS, you may get the error:
Error: Attempted to read or write protected memory. This is often an indication that other memory is corrupt (Microsoft Visual Studio).

Cause


This happens in a Windows Vista or Windows 7 system when DEP (Data Execution Prevention) is turned ON. This is related to this well known issue in ATL.
Applications Using Older ATL Components May Experience Conflicts With DEP
http://support.microsoft.com/default.aspx?scid=kb;EN-US;948468

The recommendation is to recompile the app (which we cannot do since DTS 2000 is very old and out of maintenance). The article says you can disable DEP, but it is not recommended.

Resolution


Check the status of DEP from My Computer-->Properties-->Advanced System Settings-->Settings (Under Performance panel)-->Data Execution Prevention Tab.

This issue exists with Windows Vista and appears occasionally in Windows 7.  The cause of this problem has its roots in Data Execution Prevention.  It would seem to only be an issue if your CPU supports DEP.

If DEP is enabled, the options will not be greyed out.  You may also see a note at the bottom that says “Your computer’s processor supports hardware-based DEP."

On Windows Vista, turning DEP off also disables Physical Address Extension (PAE). This parameter does not disable PAE on Windows Server 2008 though.
Since turning DEP Off is not recommended, we could use Optoutinstead of AlwaysOff:
http://msdn.microsoft.com/en-us/library/ff542202.aspx

In the Data Execution Prevention tab, choose the option Turn On DEP for all programs and services except those I select and add ssms.exe (the executable for Sql Server Management Studio) in the exception list to resolve the problem.

Note: This setting will take effect only after a System Reboot. In case you choose to turn DEP off entirely, you can turn DEP back on by executing the command: bcdedit.exe /set nx AlwaysOn

Important: It is recommended that you have a good backup of your system first. It is also advised to have a system restore point and understand how to boot into safe mode. Adjusting settings like this may have an effect that is undesirable (such as unable to boot into windows).