Jawaban:
Klik kanan pada mxd di ArcCatalog, klik Set sumber data, dan ubah massal dari sana. Namun, alat ini memperingatkan:
Catatan: dialog ini dimaksudkan terutama untuk menyiapkan dokumen peta untuk publikasi. Kustomisasi (kode VBA, Kontrol UI, dan bilah alat khusus), grafik, dan properti tampilan jendela tabel dihapus dari file .mxd saat Anda memperbarui sumber data mereka menggunakan dialog ini. Untuk melestarikan ini, perbarui sumber data di ArcMap sebagai gantinya.
Anda juga bisa menggunakan perpustakaan python arcpy.mapping :
Jika Anda menggunakan ArcGIS 10 dan tertarik menggunakan Python, lihat bantuan tentang Memperbarui dan memperbaiki sumber data dengan arcpy.mapping dan metode objek Layer .
Contoh:
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project_SDE1.mxd")
mxd.findAndReplaceWorkspacePaths(r"Database Connections\Connection to GISSDE1.sde",
r"Database Connections\Connection to GISSDE2.sde")
mxd.saveACopy(r"C:\Project\Project_SDE2.mxd")
del mxd
Jika layer Anda tidak semua sumber file koneksi asli yang sama, atau nama kelas fitur tujuan berbeda pada SDE baru, Anda mungkin perlu menggunakan Layer.replaceDataSource
sebagai gantinya.
Ini akan menghapus semua tanda seru merah yang mengandung lapisan di MXD dan akan menunjuk ke sumber data yang baru dibuat. Dalam sekali jalan Anda bisa melakukan ini; tidak perlu pergi dan mengklik setiap kali pada tanda seru merah dan mengklik dan mengatur sumber data.
http://arcscripts.esri.com/details.asp?dbid=14922
Tautannya adalah ke Arcscript lama yang disebut alat GDK, yang dapat diperoleh di situs lain. Program menciptakan toolbar di arcmap di mana Anda dapat mengubah sumber pada lapisan yang dipilih (setiap lapisan yang Anda inginkan. Ini berfungsi antara koneksi SDE atau SDE ke geodatabase file lokal (yang sumber perubahan di Arccatalog tidak dapat menangani, karena nama di SDE dimulai dengan pengguna SDE dan kemudian dot.
ini sangat membantu, tetapi mungkin hanya di arcgis 9.3
Jika Anda sudah membuka .mxd, lakukan apa yang dilakukan @ blah238, tetapi gunakan 'CURRENT'
sebagai ganti path lengkap. Jangan lupa bahwa pencarian dan penggantian tidak harus berupa string lengkap:
import arcpy
mxd = arcpy.mapping.MapDocument('CURRENT')
mxd.findAndReplaceWorkspacePaths(r"scratch",
r"project/draft")
Maka Anda harus menyimpan dan membuka kembali file .mxd.
Untuk satu mxd, alat ESRI standar dapat mencukupi. Tetapi memperbaiki beberapa mxds dengan tautan yang terputus bisa menjadi mimpi buruk. Coba alat UpdateLayerRefs saya untuk memperbaiki MXD tak terbatas dalam hitungan detik: https://github.com/jswagger/UpdateLayerRefs Cukup berikan nama input MXD Anda sebagai daftar ["Name1.mxd", "Name2.mxd", "Name3.mxd "]
Sepertinya posting ini sudah lama, tetapi saya tidak bisa mengaktifkannya: Kode adalah sebagai berikut:
import arcpy, glob
#specify MXD location to change source data
mxd = arcpy.mapping.MapDocument(r"C:\\Users\\jrender\\Documents\\LandbaseEditing PreProd Pub Check.mxd")
workspaceCurrent = r"Database Connections\Connection to PP_GISLand_Landbase.sde"
workspaceTarget = r"Database Connections\Connection to PP_Publication_GISLand.sde"
mxd.findAndReplaceWorkspacePaths(workspaceCurrent, workspaceTarget)
#save a new copy of MXD
mxd.saveACopy(r"C:\Users\jrender\Documents\LandbaseEditing PreProd Pub Check Repathed.mxd")