Langsung ke konten utama

Migration Graylite To Azure

Migrasi Database Server To Azure




[sql]
/*---- remove orphaned user using dbo.sp_Drop_OrphanedUsers stored procedure ----*/
USE [db_name]
GO
EXEC [sp_Drop_OrphanedUsers]

/*---- remove Stored Procedure: [HR].[Attendance.Activities] ----*/

/*---- remove a trigger from table inventory.[item.stock] ----*/

/*---- create table system.email.queue ----*/
CREATE TABLE [System].[Email.Queue]
(
[trans_id] [INT] IDENTITY(1,1)
NOT NULL
,[trans_recipients] [NVARCHAR](1000) NULL
,[trans_copy_recipients] [NVARCHAR](1000) NULL
,[trans_blind_copy_recipients] [NVARCHAR](1000) NULL
,[trans_subject] [NVARCHAR](1000) NULL
,[trans_body] [NVARCHAR](MAX) NULL
,[trans_sensitivity] [NVARCHAR](50) NOT NULL
CONSTRAINT [DF_Email.Queue_trans_sensitivity] DEFAULT('Personal')
,[trans_importance] [NVARCHAR](50) NOT NULL
CONSTRAINT [DF_Email.Queue_trans_importance] DEFAULT('High')
,[trans_body_format] [NVARCHAR](50) NOT NULL
CONSTRAINT [DF_Email.Queue_trans_body_format] DEFAULT(N'HTML')
,[trans_profile_name] [NVARCHAR](100) NOT NULL
CONSTRAINT [DF_Email.Queue_trans_profile_name] DEFAULT('System Notification')
,[trans_fetched] [BIT] NOT NULL
CONSTRAINT [DF_Email.Queue_trans_fetched] DEFAULT((0))
,[reply_to] [NVARCHAR](50) NULL
,CONSTRAINT [PK_Email.Queue] PRIMARY KEY CLUSTERED([trans_id] ASC)
WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON)
)

/*---- convert :Trigger [System].[Send.Notification]
:SP [System].[User.SetPassword]
:SP [System].[Schedule.Execute] and others sp which using db_send_email ----*/
INSERT INTO system.[email.queue]
(
trans_recipients
,trans_body
,trans_subject
)
SELECT
'alamatemail@gmail.com'
,@body
,@subject

/*---- [System].[Send.Notification] ----*/

INSERT INTO system.[email.queue]
(
trans_recipients
,trans_body
,trans_subject
)
SELECT
@NOTICE_EMAIL
,@body
,@Notice_Subject

/*---- [System].[User.SetPassword] ----*/
INSERT INTO system.[email.queue]
(
trans_recipients
,trans_body
,trans_subject
,trans_profile_name
)
SELECT
@Email
,@body
,'New Password'
,'System Notification'
/*---- [System].[Schedule.Execute] ----*/
INSERT INTO system.[email.queue]
(
trans_recipients
,trans_body
,trans_subject
)
SELECT
'loeischandra@gmail.com'
,@ERR
,'Error Graylite Job Scheduler'

/*---- create sp getlocaldate ----*/
CREATE FUNCTION [dbo].[GetLocalDate]
(
)
RETURNS DATETIME
AS
BEGIN
RETURN DATEADD(Hh,7,GETUTCDATE())
END;
CREATE DEFAULT [dbo].[LocalTime] AS DATEADD(Hh,7,GETUTCDATE());
/*---- update password from asymetrickey to sha1 ----*/
ALTER TABLE system.[user.management]
ADD
old_password VARBINARY(256)
,new_password VARBINARY(256)

UPDATE system.[user.management]
SET old_password = user_password
SELECT
'update system.[user.management] set new_password = hashbytes(''sha1'','''+CONVERT( NVARCHAR,DECRYPTBYASYMKEY(ASYMKEY_ID('UserPassword'),user_password,N'c4t3rp1ll4r'))+''') where user_login='''+user_login+''';'
FROM system.[user.management]

UPDATE system.[user.management]
SET user_password = new_password

/*---- remove asymetric key ----*/

/*---- update printout connection to new server database ----*/
DECLARE
@connstring NVARCHAR(200)
SET @connstring = '<ConnectionString>Server=graylite1.database.windows.net, 1433;Database=DB_NAME;User Id=graylite1;Password=b00m3r4ng!;</ConnectionString>'
UPDATE [System].[Form.Headers]
SET hdr_expr = CASE
WHEN STUFF(hdr_expr,PATINDEX('%<ConnectionStringEncrypted>%',hdr_expr),PATINDEX('%</ConnectionStringEncrypted>%',hdr_expr)+28-PATINDEX('%<ConnectionStringEncrypted>%',hdr_expr),@connstring) IS NULL
THEN hdr_expr
ELSE STUFF(hdr_expr,PATINDEX('%<ConnectionStringEncrypted>%',hdr_expr),PATINDEX('%</ConnectionStringEncrypted>%',hdr_expr)+28-PATINDEX('%<ConnectionStringEncrypted>%',hdr_expr),@connstring)
END
WHERE
hdr_type = 'REPORTSTI'
UPDATE [System].[Form.Headers]
SET hdr_expr = CASE
WHEN STUFF(hdr_expr,PATINDEX('%<ConnectionString>%',hdr_expr),PATINDEX('%</ConnectionString>%',hdr_expr)+19-PATINDEX('%<ConnectionString>%',hdr_expr),@connstring) IS NULL
THEN hdr_expr
ELSE STUFF(hdr_expr,PATINDEX('%<ConnectionString>%',hdr_expr),PATINDEX('%</ConnectionString>%',hdr_expr)+19-PATINDEX('%<ConnectionString>%',hdr_expr),@connstring)
END
WHERE
hdr_type = 'REPORTSTI'
/*---- update sql server agent jobs :AZUREDAILYSCHEDULE on i7PC ----*/

/*---- update FETCH EMAIL stored procedure [System].[Fetch.Email.Azure] on DB_Controller i7PC ----*/

/*---- remove job on local i7 ----*/

/*---- replace semua penggunaan getdate() ke dbo.getlocaldate() ----*/

/*---- All stored procedure and function ----*/
SELECT DISTINCT
o.name AS Object_Name
,o.type_desc
,LEFT(m.definition,500) AS def
FROM sys.sql_modules m
INNER JOIN sys.objects o ON m.object_id = o.object_id
WHERE m.definition LIKE '%GETDATE%' ESCAPE '\'

/*---- Default value on tables ----*/
SELECT
table_schema
,table_name
,COLUMN_NAME
,column_default
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_default LIKE '%GETDATE%' ESCAPE '\'
ORDER BY
table_schema
,table_name
/*---- Computed column formula on tables ----*/

---------------------------------

SELECT
a.definition
,a.name
,b.name
FROM sys.computed_columns a
INNER JOIN sys.tables b ON a.object_id = b.object_id
WHERE definition LIKE '%GETDATE%' ESCAPE '\'
--

/*---- create report session ----*/
CREATE TABLE [System].[Report.Session]
(
[trans_id] [INT] IDENTITY(1,1)
NOT NULL
,[trans_code] [NVARCHAR](100) NOT NULL
,[trans_status] [TINYINT] NOT NULL
CONSTRAINT [DF_Report.Session_trans_status] DEFAULT((0))
,[trans_date] [DATETIME] NOT NULL
CONSTRAINT [DF_Report.Session_trans_date] DEFAULT([dbo].[getlocaldate]())
,[trans_report] [NVARCHAR](100) NOT NULL
,[trans_user] [NVARCHAR](50) NOT NULL
,[trans_type] [BIT] NOT NULL
CONSTRAINT [DF_Report.Session_trans_type] DEFAULT((0))
,CONSTRAINT [PK_Report.Session] PRIMARY KEY CLUSTERED([trans_id] ASC)
WITH(PAD_INDEX = OFF,STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON)
)
[/sql]

Komentar

Postingan populer dari blog ini

sys.processes Status sp_who2 SQL Server

Taken from the books online reference for sys.processes  and the status column. dormant = SQL Server is resetting the session. running = The session is running one or more batches. When Multiple Active Result Sets (MARS) is enabled, a session can run multiple batches. For more information, see Using Multiple Active Result Sets (MARS). background = The session is running a background task, such as deadlock detection. rollback = The session has a transaction rollback in process. pending = The session is waiting for a worker thread to become available. runnable = The task in the session is in the runnable queue of a scheduler while waiting to get a time quantum. spinloop = The task in the session is waiting for a spinlock to become free. suspended = The session is waiting for an event, such as I/O, to complete.