Didier 帝迪ㄟ珍天帝

Didier 帝迪ㄟ珍天帝與你分享
我就是我 世上無人可取代 正面、積極、樂觀、享受人生
將心情、觀感、心愛的大小老婆、建議及所知道的技術文件一一POST出來

2007年10月18日 星期四

Escape and comment characters 各種逃脫字元及註解符號

SQL
'為Escape character
/ * text_of_comment * /
-- line of comment
Ex:
declare @s varchar(100)
set @s='didier''s'
select @s

ASP(VB)
"為Escape character
' text of comment

C#
\@ 為Escape character
char sChar = '\0';
string sString = @"C:\Winnt";
string sString2 = "c:\\Winnt";
string sString3 = " \"That's a question\" ";

/ * text of comment * /
// line of comment


Javascript
// text of comment

HTML

Apache IIS Server inculde方式大不同

include 在Apache IIS Server上有不同也有相同
尤其在使用相對目錄時
./本層
../上層
建議Apache使用virtual

IIS使用file

這樣就可以用的輕鬆方便
不用考慮現在要放的是哪一台Server

Backup All DataBase

MS SQL2000 Server
Create Backup Folder set @sBackupPath=''D:\Backup\SQL\''
This Schedule include all DB FULL、DIFFERENTIAL and Transcation Log Backup
then auto delete one week later backup data.
1.Backup Master Msdb

BEGIN TRANSACTION
DECLARE @JobID BINARY(16)
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1
EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'

-- 刪除相同名稱作業 (如果作業存在)
SELECT @JobID = job_id
FROM msdb.dbo.sysjobs
WHERE (name = N'Backup master 7,1,2,3,4,5,6')
IF (@JobID IS NOT NULL)
BEGIN
-- 檢查作業是否是為多重伺服器的作業
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (job_id = @JobID) AND (server_id <> 0)))
BEGIN
-- 有,所以中斷指令碼
RAISERROR (N'無法匯入作業 'Backup master 7,1,2,3,4,5,6',因為多重伺服器已經有這個名稱。', 16, 1)
GOTO QuitWithRollback
END
ELSE
-- 刪除 [本機] 作業
EXECUTE msdb.dbo.sp_delete_job @job_name = N'Backup master 7,1,2,3,4,5,6'
SELECT @JobID = NULL
END

BEGIN

-- 新增作業
EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'Backup master 7,1,2,3,4,5,6', @owner_login_name = N'sa', @description = N'沒有可用的描述。', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業步驟
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Backup master 7,1,2,3,4,5,6', @command = N'--宣告變數
declare @dWeek varchar(10),@dWeek2 varchar(10),@dWeekDay varchar(10),@sDBName varchar(20) ,@sBackupPath varchar(20)
--顯示第幾週、星期幾、DB名稱及備份路徑
set @dWeek=DATEPART(week,getdate())
set @dWeek2=DATEPART(week,getdate()-7)
set @dWeekDay=DATEPART(weekday,getdate()) -1
set @sDBName=''master''
set @sBackupPath=''D:\Backup\SQL\''
--執行指令
Exec(''BACKUP DATABASE [''
+@sDBName+''] TO DISK = N''''''+@sBackupPath+@sDBName+''-''+@dWeek+''.BAK'''' WITH INIT, NOUNLOAD , NAME = N''''''+@sDBName+''-''+@dWeek +''備份'''', NOSKIP , STATS = 10, NOFORMAT '')
--刪除前一禮拜資料
Exec(''xp_cmdshell ''''del ''+@sBackupPath+@sDBName+''-''+@dWeek2+''.BAK '''''')
', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業排程
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'Backup master 7,1,2,3,4,5,6', @enabled = 1, @freq_type = 4, @active_start_date = 20050429, @active_start_time = 20000, @freq_interval = 1, @freq_subday_type = 1, @freq_subday_interval = 0, @freq_relative_interval = 0, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增目標伺服器
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:


GO
BEGIN TRANSACTION
DECLARE @JobID BINARY(16)
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1
EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'

-- 刪除相同名稱作業 (如果作業存在)
SELECT @JobID = job_id
FROM msdb.dbo.sysjobs
WHERE (name = N'Backup msdb 7,1,2,3,4,5,6')
IF (@JobID IS NOT NULL)
BEGIN
-- 檢查作業是否是為多重伺服器的作業
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (job_id = @JobID) AND (server_id <> 0)))
BEGIN
-- 有,所以中斷指令碼
RAISERROR (N'無法匯入作業 'Backup msdb 7,1,2,3,4,5,6',因為多重伺服器已經有這個名稱。', 16, 1)
GOTO QuitWithRollback
END
ELSE
-- 刪除 [本機] 作業
EXECUTE msdb.dbo.sp_delete_job @job_name = N'Backup msdb 7,1,2,3,4,5,6'
SELECT @JobID = NULL
END

BEGIN

-- 新增作業
EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'Backup msdb 7,1,2,3,4,5,6', @owner_login_name = N'sa', @description = N'沒有可用的描述。', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業步驟
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Backup msdb 7,1,2,3,4,5,6', @command = N'--宣告變數
declare @dWeek varchar(10),@dWeek2 varchar(10),@dWeekDay varchar(10),@sDBName varchar(20) ,@sBackupPath varchar(20)
--顯示第幾週、星期幾、DB名稱及備份路徑
set @dWeek=DATEPART(week,getdate())
set @dWeek2=DATEPART(week,getdate()-7)
set @dWeekDay=DATEPART(weekday,getdate()) -1
set @sDBName=''msdb''
set @sBackupPath=''D:\Backup\SQL\''
--執行指令
Exec(''BACKUP DATABASE [''
+@sDBName+''] TO DISK = N''''''+@sBackupPath+@sDBName+''-''+@dWeek+''.BAK'''' WITH INIT, NOUNLOAD , NAME = N''''''+@sDBName+''-''+@dWeek +''備份'''', NOSKIP , STATS = 10, NOFORMAT '')
--刪除前一禮拜資料
Exec(''xp_cmdshell ''''del ''+@sBackupPath+@sDBName+''-''+@dWeek2+''.BAK '''''')
', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業排程
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'Backup msdb 7,1,2,3,4,5,6', @enabled = 1, @freq_type = 4, @active_start_date = 20050429, @active_start_time = 10000, @freq_interval = 1, @freq_subday_type = 1, @freq_subday_interval = 0, @freq_relative_interval = 0, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增目標伺服器
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

GO

2.Backup All Other DB
-- 指令碼產生於 2006/5/22 下午 05:11
-- 由: sa
-- 伺服器: ECTEST01

BEGIN TRANSACTION
DECLARE @JobID BINARY(16)
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1
EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'

-- 刪除相同名稱作業 (如果作業存在)
SELECT @JobID = job_id
FROM msdb.dbo.sysjobs
WHERE (name = N'Backup DB Diff 2,3,5,6')
IF (@JobID IS NOT NULL)
BEGIN
-- 檢查作業是否是為多重伺服器的作業
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (job_id = @JobID) AND (server_id <> 0)))
BEGIN
-- 有,所以中斷指令碼
RAISERROR (N'無法匯入作業 ''Backup DB Diff 2,3,5,6'',因為多重伺服器已經有這個名稱。', 16, 1)
GOTO QuitWithRollback
END
ELSE
-- 刪除 [本機] 作業
EXECUTE msdb.dbo.sp_delete_job @job_name = N'Backup DB Diff 2,3,5,6'
SELECT @JobID = NULL
END

BEGIN

-- 新增作業
EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'Backup DB Diff 2,3,5,6', @owner_login_name = N'sa', @description = N'沒有可用的描述。', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業步驟
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Diff Backup', @command = N'
--宣告變數
declare @dWeek varchar(10), @dWeek2 varchar(10),@dWeekDay varchar(10),@sDBName varchar(50) ,@sBackupPath varchar(20)
--顯示第幾週、星期幾、DB名稱及備份路徑
set @dWeek=DATEPART(week,getdate())
set @dWeek2=DATEPART(week,getdate()-7)
set @dWeekDay=DATEPART(weekday,getdate()) -1
set @sBackupPath=''D:\Backup\SQL\''
-- Declare the cursor from AgentMember
DECLARE curBill CURSOR FOR

SELECT name FROM sysdatabases WHERE (name NOT IN (''master'', ''model'', ''msdb'', ''pubs'', ''tempdb''))

--uid=1 dbo
--Open Cursor
OPEN curBill
--Fetch Next Cursor
FETCH NEXT FROM curBill
INTO @sDBName
--Cursor 迴圈===================
WHILE @@FETCH_STATUS = 0
BEGIN
--執行指令
Exec(''BACKUP DATABASE [''
+@sDBName+''] TO DISK = N''''''+@sBackupPath+@sDBName+''-Diff-''+@dWeek +''-''+@dWeekDay +''.BAK'''' WITH INIT , NOUNLOAD , DIFFERENTIAL , NAME = N''''''+@sDBName+''-Diff-''+@dWeek +''-''+@dWeekDay +''備份'''', NOSKIP , STATS = 10, NOFORMAT '')
--刪除前一禮拜資料
Exec(''xp_cmdshell ''''del ''+@sBackupPath+@sDBName+''-Diff-''+@dWeek2+''-''+@dWeekDay+''.BAK '''''')

--Fetch Next Cursor
FETCH NEXT FROM curBill
INTO @sDBName

END
--Cursor 迴圈===================
-- Close and deallocate the cusor from memory.
close curBill
deallocate curBill


', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業排程
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'Diff Backup', @enabled = 1, @freq_type = 8, @active_start_date = 20050429, @active_start_time = 100, @freq_interval = 108, @freq_subday_type = 1, @freq_subday_interval = 0, @freq_relative_interval = 0, @freq_recurrence_factor = 1, @active_end_date = 99991231, @active_end_time = 235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增目標伺服器
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:


GO
BEGIN TRANSACTION
DECLARE @JobID BINARY(16)
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1
EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'

-- 刪除相同名稱作業 (如果作業存在)
SELECT @JobID = job_id
FROM msdb.dbo.sysjobs
WHERE (name = N'Backup DB Log 7,1,2,3,4,5,6')
IF (@JobID IS NOT NULL)
BEGIN
-- 檢查作業是否是為多重伺服器的作業
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (job_id = @JobID) AND (server_id <> 0)))
BEGIN
-- 有,所以中斷指令碼
RAISERROR (N'無法匯入作業 ''Backup DB Log 7,1,2,3,4,5,6'',因為多重伺服器已經有這個名稱。', 16, 1)
GOTO QuitWithRollback
END
ELSE
-- 刪除 [本機] 作業
EXECUTE msdb.dbo.sp_delete_job @job_name = N'Backup DB Log 7,1,2,3,4,5,6'
SELECT @JobID = NULL
END

BEGIN

-- 新增作業
EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'Backup DB Log 7,1,2,3,4,5,6', @owner_login_name = N'sa', @description = N'沒有可用的描述。', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業步驟
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Trx Log Backup', @command = N'
--宣告變數
declare @dWeek varchar(10), @dWeek2 varchar(10),@dWeekDay varchar(10),@sDBName varchar(50) ,@sBackupPath varchar(20)
--顯示第幾週、星期幾、DB名稱及備份路徑
set @dWeek=DATEPART(week,getdate())
set @dWeek2=DATEPART(week,getdate()-7)
set @dWeekDay=DATEPART(weekday,getdate()) -1
set @sBackupPath=''D:\Backup\SQL\''
-- Declare the cursor from AgentMember
DECLARE curBill CURSOR FOR

SELECT name FROM sysdatabases WHERE (name NOT IN (''master'', ''model'', ''msdb'', ''pubs'', ''tempdb''))

--uid=1 dbo
--Open Cursor
OPEN curBill
--Fetch Next Cursor
FETCH NEXT FROM curBill
INTO @sDBName
--Cursor 迴圈===================
WHILE @@FETCH_STATUS = 0
BEGIN
--執行指令
Exec(''BACKUP LOG [''
+@sDBName+''] TO DISK = N''''''+@sBackupPath+@sDBName+''-Log-''+@dWeek +''-''+@dWeekDay+''.BAK'''' WITH NOINIT, NOUNLOAD , NAME = N''''''+@sDBName+''-Log-''+@dWeek +''-''+@dWeekDay+''備份'''', NOSKIP , STATS = 10, NOFORMAT '')
--刪除前一禮拜資料
Exec(''xp_cmdshell ''''del ''+@sBackupPath+@sDBName+''-Log-''+@dWeek2+''-''+@dWeekDay+''.BAK '''''')

--Fetch Next Cursor
FETCH NEXT FROM curBill
INTO @sDBName
END
--Cursor 迴圈===================
-- Close and deallocate the cusor from memory.
close curBill
deallocate curBill


', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業排程
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'Trx Log Backup', @enabled = 1, @freq_type = 4, @active_start_date = 20050429, @active_start_time = 1330, @freq_interval = 1, @freq_subday_type = 8, @freq_subday_interval = 1, @freq_relative_interval = 0, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 234630
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增目標伺服器
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:


GO
BEGIN TRANSACTION
DECLARE @JobID BINARY(16)
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1
EXECUTE msdb.dbo.sp_add_category @name = N'[Uncategorized (Local)]'

-- 刪除相同名稱作業 (如果作業存在)
SELECT @JobID = job_id
FROM msdb.dbo.sysjobs
WHERE (name = N'Backup DB Full 7,1,2,3,4,5,6')
IF (@JobID IS NOT NULL)
BEGIN
-- 檢查作業是否是為多重伺服器的作業
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
WHERE (job_id = @JobID) AND (server_id <> 0)))
BEGIN
-- 有,所以中斷指令碼
RAISERROR (N'無法匯入作業 ''Backup DB Full 7,1,2,3,4,5,6'',因為多重伺服器已經有這個名稱。', 16, 1)
GOTO QuitWithRollback
END
ELSE
-- 刪除 [本機] 作業
EXECUTE msdb.dbo.sp_delete_job @job_name = N'Backup DB Full 7,1,2,3,4,5,6'
SELECT @JobID = NULL
END

BEGIN

-- 新增作業
EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'Backup DB Full 7,1,2,3,4,5,6', @owner_login_name = N'sa', @description = N'沒有可用的描述。', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業步驟
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'Backup DB 7,1,2,3,4,5,6', @command = N'
--宣告變數
declare @dWeek varchar(10), @dWeek2 varchar(10),@dWeekDay varchar(10),@sDBName varchar(50) ,@sBackupPath varchar(20)
--顯示第幾週、星期幾、DB名稱及備份路徑
set @dWeek=DATEPART(week,getdate())
set @dWeek2=DATEPART(week,getdate()-7)
set @dWeekDay=DATEPART(weekday,getdate()) -1
set @sBackupPath=''D:\Backup\SQL\''
-- Declare the cursor from AgentMember
DECLARE curBill CURSOR FOR

SELECT name FROM sysdatabases WHERE (name NOT IN (''master'', ''model'', ''msdb'', ''pubs'', ''tempdb''))

--uid=1 dbo
--Open Cursor
OPEN curBill
--Fetch Next Cursor
FETCH NEXT FROM curBill
INTO @sDBName
--Cursor 迴圈===================
WHILE @@FETCH_STATUS = 0
BEGIN
--執行指令
Exec(''BACKUP DATABASE [''
+@sDBName+''] TO DISK = N''''''+@sBackupPath+@sDBName+''-Full-''+@dWeek +''-''+@dWeekDay +''.BAK'''' WITH INIT , NOUNLOAD , NAME = N''''''+@sDBName+''-Full-''+@dWeek +''-''+@dWeekDay +''備份'''', NOSKIP , STATS = 10, NOFORMAT '')
--刪除前一禮拜資料
Exec(''xp_cmdshell ''''del ''+@sBackupPath+@sDBName+''-Full-''+@dWeek2+''-''+@dWeekDay+''.BAK '''''')

--Fetch Next Cursor
FETCH NEXT FROM curBill
INTO @sDBName
END
--Cursor 迴圈===================
-- Close and deallocate the cusor from memory.
close curBill
deallocate curBill


', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1

IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增作業排程
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id = @JobID, @name = N'Backup DB 7,1,2,3,4,5,6', @enabled = 1, @freq_type = 4, @active_start_date = 20050429, @active_start_time = 20000, @freq_interval = 1, @freq_subday_type = 1, @freq_subday_interval = 0, @freq_relative_interval = 0, @freq_recurrence_factor = 0, @active_end_date = 99991231, @active_end_time = 235959
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

-- 新增目標伺服器
EXECUTE @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @JobID, @server_name = N'(local)'
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:


GO

The World Is Flat

今天早上開信
看到一封來自BLOG的留言
竟然是國外不認識的網友David Santos
對於我發表的文章作回應,真是感動

感到莫名的高興
網路真是如此無遠坲界

決定將自己所知道的技術發表
也許是野人獻曝
但也是一個自我實現的好園地
還有儘量中英文都寫囉!順便提升一下英文能力