Showing posts with label SQL Server. Show all posts
Showing posts with label SQL Server. Show all posts

Tuesday, August 16, 2022

Restore Database SQL Server



Berikut adalah cara restore database SQL Server :

1. Menggunakan Sintak Query : 

Format :

RESTORE DATABASE *database_name* WITH RECOVERY


Contoh :


RESTORE DATABASE dbdata FROM DISK = N'D:\Backup\dtbase.bak' WITH  RECOVERY;
 
atau

RESTORE DATABASE dbdata FROM DISK = N'D:\Backup\dtbase.bak' WITH  FILE = 1, NOUNLOAD, STATS = 5;

atau 

RESTORE DATABASE NamaDB FROM DISK = 'Path\dbdata.Bak'
WITH MOVE 'dbdata' TO 'path\dtbase.mdf',
MOVE 'dbdata_log' TO 'path\dtbase_Log.ldf'


2. Menggunakan SQL Server Management Studio


Kemudian pilih database lalu klik kanan, lalu pilih Restore


kemudian klik button titik 3 ( ... )


lalu klik Add


Selanjutnya pilih file backup-an yang sudah dibackup sebelumnya



Setelah itu pilih tab Options dikiri, centang Overwrite the existing database (WITH REPLACE). dan Leave the database ready to use... lalu klik OK


Restore database telah selesai

Backup Database SQL Server


Berikut adalah cara backup database SQL Server :

1. Menggunakan Sintak Query : 

Untuk backup full :

format :

BACKUP DATABASE databasename TO DISK = 'filepath' [ WITH NOFORMAT, NOINIT, NAME = N'Full Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 ];

Contoh :

BACKUP DATABASE dbData TO DISK = 'D:\backups\dbData.bak';


untuk backup bagian dari database yang telah berubah sejak terakhir.

Format : 

BACKUP DATABASE databasename TO DISK = 'filepath' WITH DIFFERENTIAL;

Contoh :

BACKUP DATABASE dbData TO DISK = 'D:\backups\dbData.bak' WITH DIFFERENTIAL;


2. Menggunakan SQL Server Management Studio

Buka SQL Server, lalu pilih Object Explorer, atau klik Menu View --> Object Explorer, bisa juga tekan F8


Kemudian pilih database lalu klik kanan, lalu pilih Back-Up...

Selanjutnya klik Add



Klik button titik 3, untuk menentukan dimana akan dibackup file tersebut


Lalu klk OK


Kemudian klik OK untuk melakukan backup


Backup Database telah selesai dilakukan


Send Email dengan SQL Server

 


Berikut adalah cara send email dengan SQL Server :

Format :
sp_send_dbmail [ [ @profile_name = ] 'profile_name' ]  
    [ , [ @recipients = ] 'recipients [ ; ...n ]' ]  
    [ , [ @copy_recipients = ] 'copy_recipient [ ; ...n ]' ]  
    [ , [ @blind_copy_recipients = ] 'blind_copy_recipient [ ; ...n ]' ]  
    [ , [ @from_address = ] 'from_address' ]  
    [ , [ @reply_to = ] 'reply_to' ]   
    [ , [ @subject = ] 'subject' ]   
    [ , [ @body = ] 'body' ]   
    [ , [ @body_format = ] 'body_format' ]  
    [ , [ @importance = ] 'importance' ]  
    [ , [ @sensitivity = ] 'sensitivity' ]  
    [ , [ @file_attachments = ] 'attachment [ ; ...n ]' ]  
    [ , [ @query = ] 'query' ]  
    [ , [ @execute_query_database = ] 'execute_query_database' ]  
    [ , [ @attach_query_result_as_file = ] attach_query_result_as_file ]  
    [ , [ @query_attachment_filename = ] query_attachment_filename ]  
    [ , [ @query_result_header = ] query_result_header ]  
    [ , [ @query_result_width = ] query_result_width ]  
    [ , [ @query_result_separator = ] 'query_result_separator' ]  
    [ , [ @exclude_query_output = ] exclude_query_output ]  
    [ , [ @append_query_error = ] append_query_error ]  
    [ , [ @query_no_truncate = ] query_no_truncate ]   
    [ , [ @query_result_no_padding = ] @query_result_no_padding ]   
    [ , [ @mailitem_id = ] mailitem_id ] [ OUTPUT ]  

Contoh :

1. Email Sederhana
Exec msdb.dbo.sp_send_dbmail
@profile_name = 'PT. XYZ',  
@recipients = 'xyz@gmail.com',  
@from_address = 'admin@gmail.com',
@subject='Judul Email'
@body='Isi Email';

2. Email dengan multi penerima
Exec msdb.dbo.sp_send_dbmail
@profile_name = 'PT. XYZ',  
@recipients = 'xyz@gmail.com',  
@copy_recipients  = 'atasan@gmail.com; wakil@gmail.com;',
@blind_copy_recipients = 'bos@gmail.com', 
@from_address = 'admin@gmail.com',
@subject='Judul Email'
@body='Isi Email';

3. Email dengan attachments File
Exec msdb.dbo.sp_send_dbmail
@profile_name = 'PT. XYZ',  
@recipients = 'xyz@gmail.com',
@from_address = 'admin@gmail.com',
@subject='Judul Email'
@body='Isi Email'
@file_attachments = 'd:\file.txt';


4. Email dengan file yang dikirim dalam bentuk HTML.

DECLARE @tableHTML NVARCHAR(MAX);
     
    SET @tableHTML = 
    N'<style>' +
        N'p{color: blue;}'+
        N'.test{font-family: Arial; color: green;}'+
    N'</style>'+
     
    N'<H1 class="belajar">Mengirim Email Dengan bentuk HTML</H1>'+
    N'<h4 style="font-family : Arial">Pengiriman Email  menggunakan SQL Server</h4>'+
    N'<table border = "1"> '+
        N'<tr>' +
            --1st Header
            N'<th>'+
                N'PLAN_ID'+
            N'</th>' +
            --2nd Header
            N'<th>'+
                N'Average'+
            N'</th>' +
        N'</tr>' +
        --query start here
        CAST((SELECT td=PLAN_ID, ' ',
                td = AVERAGE, ' '
                FROM HTSdb.dbo.TBL_KCT_7DF_PLAN
                FOR XML PATH('tr'), TYPE 
            ) AS NVARCHAR(MAX) ) +
    N'</table> '+
    N'<h3 class="belajar"> Belajar Mengirim Email dengan SQL Server </h3>'+
    N'<p>Pemula</p>';


EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'PT. XYZ',  
@recipients = 'xyz@gmail.com',
@from_address = 'admin@gmail.com',
@subject='Judul Email' 
   @body=@tableHTML,
   @body_format='HTML';



Thursday, August 11, 2022

Membuat Procedure SQL Server

Berikut adalah contoh membuat dan memanggil procedure SQL Server

Kode               Nama        Umur
JTJohanes Tan30
MBMike Bun40
BDBudianto25
NVNovi18


Create or Alter Procedure getDataPerson() As

Begin

    select * from person where umur > 27;

End 

Go

Cara panggil : Exec getDataPersen;

Hasil

ode               Nama        Umur
JTJohanes Tan30
MBMike Bun40


Create or Alter Procedure insertPerson(@p_kode varchar(10),  @p_nama varchar(50), @p_umur int) As

Begin Transaction

    insert person (kode, nama, umur) values (@p_kode,@p_ nama, @p_umur);

   ' untuk menampilkan data

    select * from person;

    IF @@Error = 0

      COMMIT TRANSACTION
    ELSE
      ROLLBACK TRANSACTION

go

Cara panggil : Exec insertPerson('LK', 'Lukman', 29);

Hasil

Kode               Nama        Umur
JTJohanes Tan30
MBMike Bun40
BDBudianto25
NVNovi18
LKLukman29


Create or Alter Procedure updatePerson(@p_kode varchar(10),  @p_nama varchar(50), @p_umur int)

 Begin Transaction

    update person set  nama = @p_nama , umur = @p_umur where kode = @p_kode;

   ' untuk menampilkan data

    select * from person;

    IF @@Error = 0

      COMMIT TRANSACTION
    ELSE
      ROLLBACK TRANSACTION

go

Cara panggil : Exec updatePerson('LK', 'Luis Kerta', 49);

Hasil

Kode               Nama        Umur
JTJohanes Tan30
MBMike Bun40
BDBudianto25
NVNovi18
LKLusi Kerta49


Create or Alter Procedure deletePerson(@p_kode varchar(10))

 Begin Transaction

    delete from person where kode = @p_kode;

   ' untuk menampilkan data

    select * from person;

    IF @@Error = 0

      COMMIT TRANSACTION
    ELSE
      ROLLBACK TRANSACTION

go

Cara panggil : Exec deletePerson('LK');

Hasil

Kode               Nama        Umur
JTJohanes Tan30
MBMike Bun40
BDBudianto25
NVNovi18

Membuat Function SQL Server

 


Berikut adalah cara membuat Function pada SQL Server 

Kode          Nama
01Johanes Tan
MBMike Bun
BDBudianto
NVNovi


Create Function getTanggal() Returns Date As

  Begin

         Declare @Tanggal date ;

set @Tanggal = now();

Returns @Tanggal;

  End

Go

Cara panggil : Select getTanggal();

Hasil : 2022-08-12 01:41:11


Create or Alter  Function getNama (@p_kode varchar(10)) Returns varchar(50) 

Begin

Declare @p_nama varchar(50);

Select isnull(nama, '')  Into @p_nama From Person Where kode = @p_kode;

Returns @p_nama;

  End

Go

Cara panggil : Select getNama('JT');

Hasil : Johanes Tan

 

Create or Alter Function getCount () Returns int

Begin

Declare @p_count int;

Select Count(*)  Into @p_count From Person ;

Returns @p_count;

  End

Go

Cara panggil : Select getCount();

Hasil :  4


Membuat Trigger pada SQL Server

 


Berikut adalah cara membuat trigger pada SQL Server

untuk memudahkan pembuatan triiger yang mengakses tabel maka perlu dibuatkan 2 tabel sebagai contoh : nama table : Person dan logPersen, dengan isi dan field pada tabel dibawah :

Person

Kode         Nama  Umur
MBMike Bun      25      


logPerson

Kode               Nama              Umur             Keterangan     

format :

CREATE [ OR ALTER ] TRIGGER [ schema_name . ]trigger_name   

ON { table | view }   

[ WITH <dml_trigger_option> [ ,...n ] ]  

{ FOR | AFTER | INSTEAD OF }   

{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }   

[ WITH APPEND ]  

[ NOT FOR REPLICATION ]   

AS { sql_statement  [ ; ] [ ,...n ] | EXTERNAL NAME <method specifier [ ; ] > }  

  

<dml_trigger_option> ::=  

    [ ENCRYPTION ]  

    [ EXECUTE AS Clause ]  

  

<method_specifier> ::=  

    assembly_name.class_name.method_name  


Format simple :

CREATE OR ALTER TRIGGER [nama_trigger]

ON [table atau view]

{ FOR | AFTER | INSTEAD OF }

{ [DELETE] [,] [INSERT] [,] [UPDATE] }

AS

[sql_statement]


Contoh :

Create OR Alter Trigger  logPerson on Person

   FOR  INSERT, UPDATE, DELETE

AS 

BEGIN

    -- SET NOCOUNT ON added to prevent extra result sets from

    -- interfering with SELECT statements.

    SET NOCOUNT ON;

 

    -- Insert statements for trigger here

    if(exists(select 1 from inserted))

    begin

 Insert logPerson (kode, nama, umur, keterangan) values (new.kode, new.nama,  new.umur, 'Insert Penambahan baru');

    end

 if(exists(select 1 from updated))

    begin

Insert logPerson (kode, nama, umur, status) values (old.kode, old.nama,  old.umur, 'Simpan data lama sebelum diUpdate'); 

 Insert logPerson (kode, nama, umur, status) values (new.kode, new.nama,  new.umur, 'Insert penambahan baru setelah diUpdate');

    end

     if(exists(select 1 from deleted))

    begin

 Insert logPerson (kode, nama, umur, status) values (old.kode, old.nama,  old.umur, 'data yang telah dihapus ');

    end

End

Go

Menjalankan :

Insert person(kode, nama, umur) values ('JT', 'Johanes Tan', 30);

Hasil :

Persen

 Kode               Nama  Umur   
MBMike Bun    25
JT             Johanes Tan30          

logPerson

Kode               Nama Umur  Keterangan  
JTJohanes Tan      30      Insert   Penambahan Baru 


update person set umur  35 where kode = 'JT';

Hasil :

Persen

 Kode               Nama  Umur   
MBMike Bun        25
JT             Johanes Tan    35         

logPerson

Kode               Nama        Umur        Status
JTJohanes Tan      30      Insert  Penambahan Baru
JTJohanes Tan      30     Simpan data lama sebelum diUpdate  
JTJohanes Tan      35     Insert penambahan baru setelah diUpdate


Delete from person where kode = 'MB'; 

Kode               Nama  Umur
JTJohanes Tan   35


logPerson

Kode               Nama  Umur  Keterangan
JTJohanes Tan      30      Insert  Penambahan Baru    
JTJohanes Tan      30      Simpan data lama sebelum diUpdate     
JTJohanes Tan      35      Insert penambahan baru karena perubahan lama  
MBMike Bun      25      data yang telah dihapus    

Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...