Postingan kali ini akan membahas mengenai teori teknologi replikasi dalam SQL Server, karena kebetulan di kantor sedang menerapkan teknologi tersebut.

Menghapus Database SQL

Menghapus database dengan menggunakan query sql jika tidak dapat dihapus dari Management Studio yang biasanya penyebabnya adalah masih ada koneksi yang tidak dapat diputus koneksinya.

IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'NamaDatabase')
DROP DATABASE NamaDatabase

DECLARE @kill varchar(8000) = ''
SELECT @kill = @kill + 'kill ' + CONVERT(varchar(5), spid) + ';'
FROM master..sysprocesses 
WHERE dbid = db_id(NamaDatabase) and spid > 50 and spid <> @@spid
EXEC(@kill);

Menambahkan User ‘select’ pada Database

Menambahkan user pada salah satu database dengan role hanya dapat memilih.
1. Buka aplikasi Management Studio. Pilih Security > Logins > New Login. Masukkan Nama user dan password serta pilih default database

2. Kemudian buat database role baru pada database
3. Masukkan nama role dan OK
4. Klik kanan pada Database yang akan ditambahkan role baru > Properties > Permissions
5. Cari role yang telah dibuat
6. Pilih grant ‘Select’ > OK
7. Kemudian pada bagian User di Database > klik Kanan > Properties
8. Pada bagian Membership > pilih role database yang telah dibuat

Set Multi User Database

Terkadang ketika restore database, kita harus menutup seluruh koneksi yang ada pada database tersebut. Jika dlakukan secara paksa, maka akan membuat database menjadi single user untuk merubahnya bisa dilakukan dengan query berikut.

ALTER DATABASE NamaDB
SET MULTI_USER;
GO

Status Restore Database tidak berubah

Ketika me-restore database terkadang terjadi error seperti status restore database tidak berubah seperti gambar di bawah ini.


Untuk mengatasi hal tersebut bisa dengan menggunakan query di t-sql dengan me-restore dan menggunakan opsi with recovery.
RESTORE DATABASE NamaDB FROM DISK = 'Path\to\file.bak'
WITH RECOVERY
GO