Working with scripts folders
Published 04 June 2013
A scripts folder is a set of object creation scripts representing a database's schema and (optionally) data.
An object creation script file is created for each object, and different object types are stored within subfolders you can specify.
You can use scripts folders:
- for version control of databases
For example, you may want to store the script files in a source control system, so that you can track the modified or new objects.
- to compare databases on unconnected SQL Servers
You can create and compare scripts folders only if you are using SQL Compare Professional Edition.
For more information about using scripts folders in source control, see: Continuous integration for databases using Red Gate SQL tools (pdf).
Creating a scripts folder
To create a new scripts folder:
- On the File menu, select Create Scripts Folder.
Alternatively, on the Project Configuration dialog box, select Source Control as a data source, then select Scripts folder. Click Create Schema Scripts:
The Create New Scripts Folder dialog box is displayed:
- Under Data source details, specify the details of the source for the scripts folder.
You can create a scripts folder from a database, backup, snapshot, or another scripts folder.
- Under Scripts folder properties, specify a name and location for the scripts folder.
- SQL Compare automatically detects the case sensitivity of the data source. If you want to override this, clear the Auto detect case sensitivity check box, and select the Treat items as case sensitive check box if required.
- By default, SQL Compare decrypts text objects in SQL Server 2008 and SQL Server 2005 databases that were created using the WITH ENCRYPTION option. When comparing large databases, selecting Decrypt encrypted objects can result in slower performance.
To customize the folder structure and character encoding of the scripts folder, click Scripts creation options.
The Edit Scripts Creation Options dialog box is displayed, allowing you to specify the directories in which your database objects and static data are saved.
When the data source is a snapshot, the case sensitivity and decryption options are not available.
When the data source is a scripts folder, the decryption option is not available.
- To finish, click Create Scripts Folder.
Comparing and deploying scripts folders
- compare a scripts folder with another data source
See: Setting data sources.
- deploy a scripts folder
When a scripts folder is the target, you can either:
- Create a deployment script to update the database from which the scripts folder was created, or
- Update files in the scripts folder directly
If a scripts folder is the target, and any of the script files that will be modified are designated as read-only, a warning is displayed. If you click Yes to continue, these files will be made writable so that they can be modified. This may occur, for example, when you are working with a source control system that sets files to read-only status in some situations.
For more information, see: Using the Deploying wizard.
More information about scripts folders
This section provides further information about using object creation scripts as a data source in SQL Compare.
- White space
SQL Server does not always process white space and comments correctly at the beginning and end of the object definition for some objects such as views, stored procedures, and rules. You are therefore recommended to select the Ignore White Space option when you use a scripts folder as a data source.
- Numbered stored procedures
Numbered stored procedures are not supported for scripts folders.
- CLR assemblies
SQL Compare can compare object creation scripts that contain CLR assemblies, or include paths to assembly files. When deploying to a scripts folder, SQL Compare will use the hexadecimal content of the assembly.
- Certificates, symmetric keys, and asymmetric keys
These are not supported when you use a scripts folder as a data source.
When you select a scripts folder as the target data source, SQL Compare preserves comments in object types such as views and stored procedures. However, this is not possible for non-textual object types such as tables. Comments that are part of a table definition will be lost when the table is modified and the object creation script updated.