Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

2 Cara Membuat Database di Linked Server menggunakan T-SQL

Salah satu cara untuk membuat database di server yang ditautkan, adalah dengan melompat ke server itu dan membuatnya secara lokal.

Tetapi Anda mungkin akan merasa sedikit tertipu jika saya memasukkannya sebagai salah satu dari “2 cara” untuk membuat database di server yang ditautkan.

Juga, meskipun opsi itu baik-baik saja jika Anda mampu dan mau melakukannya, artikel ini menunjukkan kepada Anda bagaimana melakukannya dari jarak jauh menggunakan T-SQL, tanpa harus melompat ke server lokal. Selain itu, Anda mungkin menemukan teknik ini lebih cepat daripada melompat ke server lain.

Kedua "2 cara" melibatkan EXECUTE pernyataan (yang juga dapat disingkat menjadi EXEC ). Kita dapat menggunakan pernyataan ini untuk mengeksekusi kode pada server yang ditautkan, dan itu termasuk membuat database di dalamnya.

Prasyarat

Menjalankan prosedur tersimpan pada server tertaut mengharuskan Anda mengaktifkan RPC Out (jika belum diaktifkan).

Anda dapat memeriksa apakah RPC Out diaktifkan dengan menanyakan sys.servers tampilan katalog.

Kode berikut mengaktifkan RPC Out pada server tertaut yang disebut Homer :

EXEC sp_serveroption 'MyLinkedServer', 'rpc out', 'true';

Setelah itu diaktifkan, kita dapat melanjutkan dan membuat database.

Metode 1

Inilah metode pertama untuk membuat database di server tertaut.

EXEC ('CREATE DATABASE Pets') AT Homer;

Dalam contoh ini, saya membuat database bernama Pets pada server tertaut yang disebut Homer .

EXECUTE /EXEC pernyataan dapat digunakan untuk mengirim perintah pass-through ke server terkait.

Untuk melakukannya, sertakan perintah pass-through dalam tanda kurung setelah EXECUTE /EXEC kata kunci, lalu ikuti dengan AT LinkedServerName , di mana LinkedServerName adalah nama server tertaut tempat Anda ingin membuat database.

Oleh karena itu, yang perlu kita lakukan hanyalah memasukkan CREATE TABLE pernyataan sebagai argumen untuk pernyataan ini.

Perhatikan bahwa nama server tertaut adalah nama yang Anda berikan saat membuat server tertaut. Ini bukan nama server sebenarnya dari server jarak jauh.

Metode 2

Metode kedua mirip dengan yang pertama, kecuali dalam hal ini kami meneruskan perintah kami ke sp_executesql prosedur tersimpan sistem di server jauh.

EXEC Homer.master.dbo.sp_executesql N'CREATE DATABASE World;';

Untuk melakukan ini, kita perlu menggunakan nama empat bagian, yang mencakup nama server yang ditautkan. Jika kami tidak melakukan ini, kami akan mengeksekusi sp_executesql di server lokal kami, bukan di server jauh.

Meneruskan Pernyataan sebagai Variabel

Anda juga dapat meneruskan CREATE DATABASE pernyataan sebagai variabel ke EXEC pernyataan.

Seperti ini:

DECLARE @tsql nvarchar(max);
SET @tsql = 'CREATE DATABASE Pets';
EXEC (@tsql) AT Homer;

Meskipun, jika Anda mencoba untuk kemudian beralih ke database dan membuat tabel, Anda mungkin mengalami masalah, bahkan jika Anda menambahkan GO di tempat-tempat biasa. Ini mungkin karena GO kata kunci sebenarnya bukan bagian dari T-SQL, dan hanya dikenali oleh utilitas tertentu.

Oleh karena itu, Anda mungkin perlu menjalankan skrip terpisah untuk membuat tabel.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara menambahkan properti identitas ke kolom yang ada di SQL Server?

  2. Pengembalian transaksi Entity Framework 6

  3. Kembalikan Semua Kunci Asing &PERIKSA Batasan dalam Database SQL Server (Contoh T-SQL)

  4. Perlu kolom datetime di SQL Server yang diperbarui secara otomatis saat catatan diubah

  5. Cara Memetakan Banyak Partisi ke Satu Filegroup di SQL Server (T-SQL)