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 中选择内存使用量来确定实例所分配的内存量。