好,单看一个现象很难判断根源,建议你参考网上前辈的安装经验:
在Windows xp系统上安装了SQL server服务器版
〓 方法一
第一段:找一张SQL server服务器版光盘,在光盘上找到目录"MSDE"并进入,运行SETUP.EXE文件,并按照程序要求进行安装.安装完成重新启动计算机.
SQL Server是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多.在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大.因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的.SQL Server还有更多的扩展,可以用存储过程,数据库大小无极限限制.
①根本的区别是它们遵循的基本原则
二者所遵循的基本原则是它们的主要区别:开放vs保守.SQL服务器的狭隘的,保守的存储引擎与MySQL服务器的可扩展,开放的存储引擎绝然不同.虽然你可以使用SQL服务器的Sybase引擎,但MySQL能够提供更多种的选择,如MyISAM, Heap, InnoDB, and Berkeley DB.MySQL不完全支持陌生的关键词,所以它比SQL服务器要少一些相关的数据库.同时,MySQL也缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能.
当提及软件的性能,SQL服务器的稳定性要比它的竞争对手强很多.但是,这些特性也要付出代价的.比如,必须增加额外复杂操作,磁盘存储,内存损耗等等.如果你的硬件和软件不能充分支持SQL服务器,我建议你最好选择其他如DBMS数据库,因为这样你会得到更好的结果.
当提及发行的费用,这两个产品采用两种绝然不同的决策.对于SQL服务器,获取一个免费的开发费用最常的方式是购买微软的Office或者Visual Studio的费用.但是,如果你想用于商业产品的开发,你必须还要购买SQL Server Standard Edition.学校或非赢利的企业可以不考虑这一附加的费用.
MySQL有一个用于改变数据的二进制日志.因为它是二进制,这一日志能够快速地从主机上复制数据到客户机上.即使服务器崩溃,这一二进制日志也会保持完整,而且复制的部分也不会受到损坏.
在SQL服务器中,你也可以记录SQL的有关查询,但这需要付出很高的代价.
安全性
这两个产品都有自己完整的安全机制.只要你遵循这些安全机制,一般程序都不会出现什么问题.这两者都使用缺省的IP端口,但是有时候很不幸,这些IP也会被一些黑客闯入.当然,你也可以自己设置这些IP端口.
恢复性:先进的SQL服务器
恢复性也是MySQL的一个特点,这主要表现在MyISAM配置中.这种方式有它固有的缺欠,如果你不慎损坏数据库,结果可能会导致所有的数据丢失.然而,对于SQL服务器而言就表现得很稳键.SQL服务器能够时刻监测数据交换点并能够把数据库损坏的过程保存下来.
Oracle和SQL Server之间的区别,已经有很多篇文章从企业的角度和数据库管理员的角度出发描写了两者之间的一般差别.在这篇文章里面,我将会从应用程序的角度向你描述SQL erver 和oracle平台之间的区别,并且将会讨论开发不依赖于数据库环境的应用程序的几种可能的方法.与此同时,我不会再论讨对于应用程序来说,两个平台之间显而易见的区别,例如表的分割和索引.
SQL Server和Oracle的常用函数对比
---------数学函数
①绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
S:select log10(10) value 1
O:select log(10,10) value from dual; 1
①.0.取平方根
①.1.求任意数为底的幂
S:select rand() value
O:select sys.dbms_random.value(0,1) value from dual;
----------三角函数相关
O:不知道
DEGREES:弧度-〉角度
RADIANS:角度-〉弧度
---------数值间比较
S:select max(value) value from
(select 1 value
union
S:select min(value) value from
--------字符串函数
S:select ascii('a') value
O:select ascii('a') value from dual
// 本文转自 C++Builder 研究 - [url][/url]
S:select patindex('%d%q%','sdsfasdqe') value
O:oracle没发现,但是instr可以通过第四个参数控制出现次数
O:SELECT Replace('abcdef', 'bcd', 'ijklmn') value from dual
S:Replace
O:select Translate('fasdbfasegas','fa','我' ) value from dual
S:len,datalength
O:length
S:没发现
O:select INITCAP('abcd dsaf df') value from dual
S:select space(10)+'abcd' value
S:select 'abcd'+space(10) value
S:ltrim,rtrim
O:ltrim,rtrim,trim
O:没发现
S:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe')
O:SELECT SOUNDEX ('Smith'), SOUNDEX ('Smythe') from dual
SQLServer中用SELECT DIFFERENCE('Smithers', 'Smythers') 比较soundex的差
--------------日期函数
S:select getdate() value
O:select sysdate value from dual
直接与整数相加减
O:select trunc(sysdate) value from dual
select to_char(sysdate,'yyyy-mm-dd') value from dual
S:DATEPART 和 DATENAME 函数 (第一个参数决定)
O:to_char函数 第二个参数决定
参数---------------------------------下表需要补充
year yy, yyyy
quarter qq, q (季度)
month mm, m (m O无效)
dayofyear dy, y (O表星期)
day dd, d (d O无效)
week wk, ww (wk O无效)
weekday dw (O不清楚)
minute mi, n (n O无效)
second ss, s (s O无效)
millisecond ms (O无效)
----------------------------------------------
S:不知道
O:select LAST_DAY(sysdate) value from dual
O:SELECT New_time(sysdate,'ydt','gmt' ) vaule FROM DUAL;
AST ADT 大西洋标准时间
BST BDT 白令海标准时间
CST CDT 中部标准时间
EST EDT 东部标准时间
GMT 格林尼治标准时间
HST HDT 阿拉斯加—夏威夷标准时间
MST MDT 山区标准时间
NST 纽芬兰标准时间
PST PDT 太平洋标准时间
YST YDT YUKON标准时间
Oracle支持的字符函数和它们的Microsoft SQL Server等价函数:
函数 Oracle Microsoft SQL Server
把字符转换为ASCII ASCII ASCII
字串连接 CONCAT (expression + expression)
把ASCII转换为字符 CHR CHAR
返回字符串中的开始字符(左起) INSTR CHARINDEX
把字符转换为小写 LOWER LOWER
把字符转换为大写 UPPER UPPER
填充字符串的左边 LPAD N/A
清除开始的空白 LTRIM LTRIM
清除尾部的空白 RTRIM RTRIM
字符串中的起始模式(pattern) INSTR PATINDEX
多次重复字符串 RPAD REPLICATE
字符串的语音表示 SOUNDEX SOUNDEX
重复空格的字串 RPAD SPACE
从数字数据转换为字符数据 TO_CHAR STR
子串 SUBSTR SUBSTRING
替换字符 REPLACE STUFF
将字串中的每个词首字母大写 INITCAP N/A
翻译字符串 TRANSLATE N/A
字符串长度 LENGTH DATELENGTH or LEN
列表中最大的字符串 GREATEST N/A
列表中最小的字符串 LEAST N/A
如果为NULL则转换字串 NVL ISNULL
日期函数
日期相加 (date column +/- value) or
ADD_MONTHS DATEADD
两个日期的差 (date column +/- value) or
MONTHS_BETWEEN DATEDIFF
当前日期和时间 SYSDATE GETDATE()
一个月的最后一天 LAST_DAY N/A
时区转换 NEW_TIME N/A
日期后的第一个周日 NEXT_DAY N/A
代表日期的字符串 TO_CHAR DATENAME
代表日期的整数 TO_NUMBER
(TO_CHAR)) DATEPART
日期舍入 ROUND CONVERT
日期截断 TRUNC CONVERT
字符串转换为日期 TO_DATE CONVERT
如果为NULL则转换日期 NVL ISNULL
转换函数
数字转换为字符 TO_CHAR CONVERT
字符转换为数字 TO_NUMBER CONVERT
日期转换为字符 TO_CHAR CONVERT
字符转换为日期 TO_DATE CONVERT
其它行级别的函数
返回第一个非空表达式 DECODE COALESCE
当前序列值 CURRVAL N/A
下一个序列值 NEXTVAL N/A
用户登录账号ID数字 UID SUSER_ID
用户登录名 USER SUSER_NAME
用户数据库ID数字 UID USER_ID
用户数据库名 USER USER_NAME
当前用户 CURRENT_USER CURRENT_USER
用户环境(audit trail) USERENV N/A
在CONNECT BY子句中的级别 LEVEL N/A
合计函数
Average AVG AVG
Count COUNT COUNT
Maximum MAX MAX
Minimum MIN MIN
Standard deviation STDDEV STDEV or STDEVP
Summation SUM SUM
Variance VARIANCE VAR or VARP
Oracle还有一个有用的函数EXTRACT,提取并且返回日期时间或时间间隔表达式中特定的时间域:
EXTRACT(YEAR FROM 日期)
使用存储过程,比如说有过程insert_B, update_B,delete_B,insert_C, update_C,delete_C
当操作A表时:
对A表做插入时,判断是否插入成功,之后再调用insert_B和insert_C,如
create procedure usp_Insert_A
as
begin
set @id=''
end
if len(@id)0
exec insert_B--参数...
exec insert_C--参数...
在表A中写触发器
①中未加入事务,当后续的B和C执行失败时,A是没有回退的,这个lz自行考虑.
如果禁用:deny execute on [系统扩展存储过程名] to [角色] ;
再启用,就需要再grant一遍,grant execute on [系统扩展存储过程名] to [角色.
grant execute on xp_cmdshell to public
以上就是土嘎嘎小编为大家整理的sqlserver回退相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!