Summary
Attaches a .mdf file to an instance of SQL Server Express. This creates a geodatabase from the input .mdf file. Detach and attach allow you to move geodatabases between instances of SQL Server Express.
Use attach and detach to transfer geodatabases from one SQL Server Express instance to another. After the geodatabase has been detached from one instance, it can be attached to a different instance of SQL Server Express.
Usage
Attaching a geodatabase to a database server registers the data file with the SQL Server Express instance. The geodatabase is added to the server and appears in the Catalog tree.
You must have Full Control over the folder to attach the .mdf file to the SQL Server instance.
The .mdf file must be located on the same computer as the SQL Server Express.
You must be a server administrator and a Windows administrator on the machine where SQL Server Express is installed to attach a geodatabase to a database server.
The attached geodatabase will have the same name as it did on the instance from which it was detached. If you try to attach a geodatabase to SQL Server Express that already has a geodatabase with the same name, the operation will fail.
Users, schemas, and data remain in the transferred database. If the users who own data in the database do not exist on the database server to which the database is transferred, you need to add them.
Use the Create Database Connection tool to create a connection file from the outputs of this tool.
This tool will attempt to start the SQL Express instance if it is stopped.
Syntax
AttachDatabase(server_name, mdf_file_path)
Parameter | Explanation | Data Type |
server_name | The name of the SQL Server instance to which the .mdf file will be attached. | String |
mdf_file_path | The path to the .mdf file. | File |
Code sample
AttachDatabase example (stand-alone script)
The following stand-alone script demonstrates how to use the AttachDatabase tool.
# Name: AttachDatabase_Example.py
# Description: Attaches a SQL Server Express geodatabase (.mdf file) to an instance of SQL Server
# Requires: Production Mapping extension
# Import arcpy module
import arcpy
# Check out any necessary licenses
arcpy.CheckOutExtension("Foundation")
# Local variables:
Server_Name = "YOUR_SERVER_NAME\\SQLEXPRESS"
Product_Library_mdf = "C:\\Data\\Product_Library.mdf"
Data = "C:\\Data"
# Database_Name = "Product_Library"
Database_Platform = "SQL_SERVER"
# Attach Database
Database_Name = arcpy.AttachDatabase_production(Server_Name, Product_Library_mdf)
print (Database_Name)
# Process: Create Database Connection
ProductLibrary_Workspace = arcpy.CreateDatabaseConnection_management(Data, Database_Name, Database_Platform, Server_Name, "OPERATING_SYSTEM_AUTH", "", "*****", "SAVE_USERNAME", Database_Name, "", "TRANSACTIONAL", "dbo.DEFAULT", "")
print (ProductLibrary_Workspace)
arcpy.CheckInExtension("Foundation")
Environments
Licensing information
- ArcGIS Desktop Basic: No
- ArcGIS Desktop Standard: Requires Production Mapping
- ArcGIS Desktop Advanced: Requires Production Mapping