Itu tidak terjadi pada saya BELUM. Tetapi saya memikirkan hal ini.
Saya bermain-main dengan lingkungan pelatihan saya, dan secara tidak sengaja saya mengklik nama database, dan kemudian saya menyentuh huruf A.
Mari kita asumsikan bahwa saya menekan enter. Sekarang database disebut A, dan saya tidak ingat nama aslinya. CTRL + Z tidak berfungsi.
Apa yang harus dilakukan dalam kasus seperti ini, di lingkungan produksi?
Saya tahu itu tidak bisa terjadi, karena database tidak ditetapkan sebagai PENGGUNA TUNGGAL. Tetapi jika itu terjadi. Apa yang harus dilakukan? Demi argumen, katakanlah ini adalah basis data yang tidak digunakan siapa pun saat ini.
sql-server
sql-server-2008
SQL pembalap
sumber
sumber
ALTER DATABASE
izin dan hanya masuk sebagai pengguna ketika saya benar-benar ingin menjalankanALTER DATABASE
skrip. Dengan begitu Anda tidak akan pernah melakukan hal di atasJawaban:
Klik kanan pada database, pergi ke file. Anda dapat melihat nama file aslinya. Ini akan membantu Anda menemukan nama database yang benar dengan mudah. Nama file tidak akan diubah saat ganti nama.
Anda juga dapat mencoba melihat
fn_dblog
. Tidak berdokumen tetapi Anda dapat melihat (dan memfilter) untuk tindakan terbaru.sumber
SELECT CAST([RowLog Contents 0] AS sysname) ,CAST([RowLog Contents 1] AS sysname) FROM sys.fn_dblog(NULL,NULL) WHERE Context = 'LCX_BOOT_PAGE' AND [Offset in Row] =52
Saya ragu Anda akan memiliki basis data dalam produksi yang namanya tidak Anda ketahui atau tidak pernah mendokumentasikannya di suatu tempat.
Jika hal itu terjadi dalam produksi, Anda dapat mencari daftar cadangan yang ada menggunakan
Atau gunakan
dbo.backupset
dari msdb.sumber
Anda bisa melihat Log SQL Server untuk terakhir kali SQL Server memulai dan melihat keluar untuk setiap contoh 'Memulai database' DBName '. Anda kemudian dapat membandingkan daftar ini dengan hasil sys.databases. Setiap basis data baru dan yang Anda ubah tidak akan ada dalam daftar log SQL Server.
Cara lain yang mungkin lebih baik adalah dengan menanyakan jejak dan filter default dengan :: fn_trace_gettable database_id. Dengan asumsi bahwa ada beberapa penggunaan DB baru-baru ini, kolom databaseName akan menunjukkan nama lama dan kemudian di baris yang lebih baru nama baru dengan jenis acara Object: Diubah.
sumber