A. sqlServer2005 如何創建作業
USE msdb ;
GO
EXEC dbo.sp_add_job
@job_name = 'SQL_EmailOne1', --作業的名稱
@enabled = 1, --指示添加的作業的狀態(默認值為 1(啟用))
@description = 'Testing', --作業的說明
@owner_login_name = 'sa', --擁有作業的登錄名
@notify_level_eventlog = 2, --0 從不 1 成功後 2(默認值)失敗後 3 始終
@notify_level_email = 2, --默認值為 0,指示從不發送
@notify_level_netsend = 2, --默認值為 0,指示從不發送
@notify_level_page = 2, --默認值為 0,指示從不發送
@category_id=3, --作業的類別ID
@delete_level = 0 ; --默認值為0,不刪除,用於指示何時刪除作業
GO
USE msdb ;
GO
EXEC sp_add_jobstep
@job_name = 'SQL_EmailOne1', --步驟的作業的名稱
@step_name = 'SQL_Emailone2', --步驟的名稱
@server='svr2',--伺服器名稱
@database_name='testdb',--資料庫名
@subsystem = 'TSQL', --Transact-SQL 語句\製表符 --CHAR(9) 換行符 CHAR(10) 回車 CHAR(13)
@command ='use orbitx declare @cnt int select @cnt=count( *) from sqlemail if @cnt>3 begin use msdb EXEC sp_send_dbmail @profile_name = ''two'',@recipients = ''[email protected]'',@subject = ''郵件測試xdd'',@body = ''郵件測試成功xdd!'' end',
@retry_attempts = 2,--該步驟失敗時的重試次數
@retry_interval = 0.05 ; --兩次重試之間的間隔時間(分鍾)
GO
USE msdb ;
GO
EXEC sp_add_schele
@schele_name = 'SQL_Emailone2' ,--計劃的名稱
@freq_type = 4 , --指示作業執行時間的值 1為一次,4為每天(1,8,16,32等參考幫助文檔)值為2的次方
@freq_interval = 1,--作業執行的天數 說明同上
@freq_subday_type=0x4,
@freq_subday_interval=1,
@active_start_time = 010000 ;--數據類型為 int,默認值為 000000,指示 24 小時制的上午 12:00:00,並且必須使用 HHMMSS 的格式輸入
GO
EXEC sp_attach_schele
@job_name = 'SQL_EmailOne1', --計劃的作業的名稱
@schele_name = 'SQL_Emailone2' ; --作業設置的計劃的名稱
GO
USE msdb ;
GO
EXEC dbo.sp_add_jobserver
@job_name = 'SQL_EmailOne1', --作業的名稱
@server_name = 'svr' ; --該作業的目標伺服器的名稱
GO
B. 怎麼在sqlserver2005中使用 sql prompt 5
資源介紹:
1、安裝SQLPrompt
2、將Keygen.exe拷貝至安裝目錄
3、斷網
4、退出所有打開的SQLPrompt後執行Keygen,點擊按鈕1打補丁,然後點擊按鈕2生成序號
5、到sqlprompt里填序號,選擇手動激活
6、把sqlprompt最後生成的那段拷貝到Keygen
C. 怎麼使用sqlserver2005
用一個點代表使用本機的網路系統,連接其它的資料庫需要計算機名並且被連接的還需要授權
D. SQLserver2005如何創建用戶
1.確認驗證模式
在 SQL Server Management Studio 中,對象資源管理器,主機名上點右鍵,主機屬性,安全,確認"伺服器身份驗證"為"SQL和Windows身份驗證模式"
2.新建登錄名
在主機名樹下的安全性中,添加登錄名,在登錄名項上右鍵,新鍵登錄名
例:登錄名:User01,模式為SQL驗證,密碼:User01
去掉"強制實施密碼策略"的復選,默認資料庫指向你允許訪問的資料庫
****** 還沒有完,別急著點確定 ******
3.用戶映射
在左側列表中,點擊"用戶映射",找到你允許訪問的資料庫,在前面打對勾
在下方的"資料庫角色成員身份"只,賦於對應的許可權
相關角色的許可權說明,可以在網上搜索,例如:
http://www.17xie.com/read-105583.html
確定,完成登錄名建立
4.如果是受限制的登錄名,可以不選擇成員身份
這種情況下,返回左側的主機名樹下,展開資料庫,找到允許訪問的資料庫,右鍵資料庫屬性,許可權,選擇剛剛映射的登錄名,在下側的"資料庫的顯示許可權"中,選擇Select、Insert、Delete、Update、Execute, 這就根據你的需要配置了
仔細看完上面的流程,相信你已經掌握了SQL2005的登錄名管理,完畢
E. sqlserver2005如何通過作業調用存儲過程
哈哈,我弄過的,操作步驟如下:
SQL
Server代理
--右鍵作業
--新建作業
--"常規"項中輸入作業名稱
--"步驟"項
--新建
--"步驟名"中輸入步驟名
--"類型"中選擇"Transact-SQL
腳本(TSQL)"
--"資料庫"選擇執行命令的資料庫
--"命令"中輸入要執行的語句:
exec
P_test
--確定
--"計劃"項
--新建
--"名稱"中輸入調度名稱
--"調度類型"中選擇你的作業執行安排
--如果選擇"反復出現"
--點"更改"來設置你的時間安排
然後將SQL
Agent服務啟動,並設置為自動啟動,否則你的作業不會被執行
F. SqlServer2005中 distinct關鍵字的使用
顯示重復記錄,還是有重復時只顯示一條
如:
--> --> (Roy)生成測試數據
if not object_id('Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))
Insert #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N'B1' union all
select 5,N'B',N'B2'
Go
--I、Name相同ID最小的記錄(推薦用1,2,3),方法3在SQl05時,效率高於1、2
方法1:
Select * from #T a where not exists(select 1 from #T where Name=a.Name and ID<a.ID)
方法2:
select a.* from #T a join (select min(ID)ID,Name from #T group by Name) b on a.Name=b.Name and a.ID=b.ID
方法3:
select * from #T a where ID=(select min(ID) from #T where Name=a.Name)
方法4:
select a.* from #T a join #T b on a.Name=b.Name and a.ID>=b.ID group by a.ID,a.Name,a.Memo having count(1)=1
方法5:
select * from #T a group by ID,Name,Memo having ID=(select min(ID)from #T where Name=a.Name)
方法6:
select * from #T a where (select count(1) from #T where Name=a.Name and ID<a.ID)=0
方法7:
select * from #T a where ID=(select top 1 ID from #T where Name=a.name order by ID)
方法8:
select * from #T a where ID!>all(select ID from #T where Name=a.Name)
方法9(注:ID為唯一時可用):
select * from #T a where ID in(select min(ID) from #T group by Name)
--SQL2005:
方法10:
select ID,Name,Memo from (select *,min(ID)over(partition by Name) as MinID from #T a)T where ID=MinID
方法11:
select ID,Name,Memo from (select *,row_number()over(partition by Name order by ID) as MinID from #T a)T where MinID=1
生成結果:
/*
ID Name Memo
----------- ---- ----
1 A A1
4 B B1
G. 如何在sqlserver2005資料庫中使用正則表達式
sqlserver中,主要有regexp_like,regexp_replace,regexp_substr,regexp_instr四個正則表達式函數。
1、regexp_like:
regexp_like(x,pattern[,match_option]),查看x是否與pattern相匹配,該函數還可以提供一個可選的參數match_option字元串說明默認的匹配選項。match_option的取值如下:
'c' 說明在進行匹配時區分大小寫(預設值);
'i' 說明在進行匹配時不區分大小寫;
'n' (.)點號能表示所有單個字元,包括換行(俺還不知道什麼地方有用到換行.只知道sql裡面可以用chr(10)表示換行、
'm' 字元串存在換行的時候當作多行處理.這樣$就可匹配每行的結尾.不然的話$只匹配字元串最後的位置、
示例:
select*fromempwhereregexp_like(ename
可以查找ename中以a開頭以n結尾的行.例如ename為arwen或arwin或anden.但Arwen不能被匹配.因為默認是區分大小寫.如果是
select*fromempwhereregexp_like(ename,'^a[a-z]*n$','i')
則可以查找ename為Arwen的行記錄。
2、regexp_instr:
REGEXP_INSTR(x,pattern[,start[,occurrence[,return_option[, match_option]]]])用於在x中查找pattern。返回pattern在x中出現的位置。匹配位置從1開始。可以參考字元串函數INSTR(),參數相關:
'start' 開始查找的位置;
'occurrence' 說明應該返回第幾次出現pattern的位置;
'return_option' 說明應該返回什麼整數。若該參數為0,則說明要返回的整數是x中的一個字元的位置;若該參數為非0的整數,則說明要返回的整數為x中出現在pattern之後 的字元的位置;
'match_option' 修改默認的匹配設置.與regexp_like裡面的相同.
示例:
DECLARE
V_RESULTINTEGER;
BEGIN
SELECTREGEXP_INSTR('helloworld','o',1,1,0)INTOV_RESULT
FROMDUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
結果為5,即字母o第一個次出現的位置。
如果regexp_instr('hello world','o',1,1,n)其中n為除0之外的整數。比如1,3。則結果為6.表示第一次出現字母o的後面一個字元的位置。
如果regexp_instr('hello world','o',1,2,0)則結果為9.表示第二次出現字母o的位置.
3、regexp_replace:
REGEXP_REPLACE(x,pattern[,replace_string[,start[,occurrence[, match_option]]]])用於在x中查找pattern,並將其替換為replae_string。可以參考字元串函數REPLACE(),參數同REGEXP_INSTR函數
示例:
DECLARE
V_RESULTvarchar2(90);
BEGIN
SELECTREGEXP_REPLACE('helloworld','o','x',1,1)INTOV_RESULT
FROMDUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
結果為hellx world.
如果REGEXP_REPLACE('hello world','o','x'),則結果為hellx wxrld.
如果 REGEXP_REPLACE('hello world','o','x',1,2)則結果為hello wxrld.
4、regexp_substr:
REGEXP_SUBSTR(x,pattern[,start[,occurrence[, match_option]]])用於在x中查找pattern並返回。可以參考字元串函數SUBSTR(),參數同REGEXP_INSTR函數.
例如:
DECLARE
V_RESULTVARCHAR2(255);
BEGIN
SELECTREGEXP_SUBSTR('helloworld','l{2}')INTOV_RESULT
FROMDUAL;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
結果為ll
查詢到匹配的字元串才返回匹配的字元.沒查到就返回空。
H. SQLserver2005怎麼用delete刪除多行數據
delete from yourTableName where id in ('1','2','3');
I. 如何啟用SQLSERVER2005伺服器屬性中的「使用AWE分配內存」
SQL Server 支持地址窗口化擴展插件 (AWE),從而允許在 32 位版本的 Microsoft Windows 操作系統上使用超過 4 GB 的物理內存,最多可支持 64 GB 的物理內存。默認情況下,禁用 Windows 策略「鎖定內存頁」選項。對於 32 位操作系統,在將 AWE 配置為用於 SQL Server 之前,必須授予「鎖定內存頁」許可權,必須啟用此許可權才能配置地址窗口化擴展插件 (AWE)。此策略將確定哪些帳戶可以使用進程將數據保留在物理內存中,從而阻止系統將數據分頁到磁碟的虛擬內存中。在 32 位操作系統中,如果在不使用 AWE 的情況下設置此許可權會顯著降低系統性能。
如何啟用「鎖定內存中的頁」選項:
1.在「開始」菜單上,單擊「運行」。在「打開」框中,鍵入 gpedit.msc。
將打開「組策略」對話框。
2.在「組策略」控制台上,展開「計算機配置」,再展開「Windows 設置」。
3.展開「安全設置」,再展開「本地策略」。
4.選擇「用戶權利指派」文件夾。
細節窗格中隨即顯示出策略。
5.在該窗格中,雙擊「鎖定內存中的頁」。
6.在「本地安全策略設置」對話框中,單擊「添加」按鈕。
7.在「選擇用戶或組」對話框中,添加有權運行 sqlservr.exe 的帳戶。
若要使 32 位操作系統支持 4 GB 以上的物理內存,則必須向 boot.ini 文件添加 /pae 參數並重新啟動計算機。
使用如下語句啟用AWE並配置實例所使用的緩沖池內存量:
sp_configure 'show advanced options', 1RECONFIGUREGOsp_configure 'awe enabled', 1RECONFIGUREGO sp_configure 'min server memory', 2048RECONFIGUREGOsp_configure 'max server memory', 4096RECONFIGUREGO 或在「伺服器內存選項」下,選擇「使用 AWE 分配內存」,並分配最小/最大伺服器內存。
由於 操作系統上運行的 SQL Server 2005 不支持動態分配 AWE 映射內存,因此,強烈建議為每個實例都設置 max server memory 選項,且所有實例的 max server memory 值的總和應小於計算機的總物理內存。
使用 SQL Server 性能監視器 Total Server Memory (KB) 計數器可以確定在 AWE 模式下運行的 SQL Server 實例所分配的內存量,也可以從 sysperfinfo 中選擇內存使用量來確定實例所分配的內存量。