SQL Server和Oracle常用函数对比
[ 2006-07-10 21:25:25 | 作者: admin ]
下面
S表示 sql server
O表示 oracle
数学函数
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from dual
...
阅读全文…
S表示 sql server
O表示 oracle
数学函数
1.绝对值
S:select abs(-1) value
O:select abs(-1) value from dual
2.取整(大)
S:select ceiling(-1.001) value
O:select ceil(-1.001) value from dual
3.取整(小)
S:select floor(-1.001) value
O:select floor(-1.001) value from dual
4.取整(截取)
S:select cast(-1.002 as int) value
O:select trunc(-1.002) value from dual
...
阅读全文…
调试存储过程问题总结
[ 2006-06-23 16:11:24 | 作者: admin ]
写好一个存储过程,依靠程序是很难调试的,我的方法如下
1、首先用throw得到传递进来的过程参数值
2、打开查询分析器,将储存过程copy进去,然后将头部的过程定义去掉,将外部参数定义放到内部变量定义中
3、给这些外部参数做初始化,用set 或 select
经验:
1、存储sql语句的变量要设置的大一点,遇到未闭合的',则多有可能是这个问题。
1、首先用throw得到传递进来的过程参数值
2、打开查询分析器,将储存过程copy进去,然后将头部的过程定义去掉,将外部参数定义放到内部变量定义中
3、给这些外部参数做初始化,用set 或 select
经验:
1、存储sql语句的变量要设置的大一点,遇到未闭合的',则多有可能是这个问题。
返回最后插入到 IDENTITY 列中的值,通常为ID(方法比较)
[ 2006-06-23 16:06:29 | 作者: admin ]
試試下面3個,哪個是你要的:
IDENT_CURRENT 會傳回任何工作階段和範圍中,指定資料表所產生的最後識別值。
@@IDENTITY 會傳回所有範圍的目前工作階段中,任何資料表所產生的最後一個識別值。
SCOPE_IDENTITY 會傳回在目前工作階段以及目前範圍中,任何資料表產生的最後一個識別值。
SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。
IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
...
阅读全文…
IDENT_CURRENT 會傳回任何工作階段和範圍中,指定資料表所產生的最後識別值。
@@IDENTITY 會傳回所有範圍的目前工作階段中,任何資料表所產生的最後一個識別值。
SCOPE_IDENTITY 會傳回在目前工作階段以及目前範圍中,任何資料表產生的最後一個識別值。
SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。
IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
...
阅读全文…
Sql server一些常见性能问题的总结 [推荐]
[ 2006-06-13 18:39:06 | 作者: admin ]
作者总结的很好
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10 or num=20
可以这样查询:
...
阅读全文…
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num is null
可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:
select id from t where num=0
3.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
4.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如:
select id from t where num=10 or num=20
可以这样查询:
...
阅读全文…
可以推荐的SQL Server语句和存储过程
[ 2006-06-11 11:59:32 | 作者: admin ]
SQL Server语句和存储过程
*************************************************
统计SQL数据表个数、占用字节
*************************************************
declare @id int
declare @type character(2)
declare @pages
int
declare @dbname sysname
declare @dbsize dec(15,0)
declare @bytesperpage dec(15,0)
declare @pagesperMB dec(15,0)
create table #spt_space
(
objid int null,
rows int null,
reserved dec(15) null,
...
阅读全文…
*************************************************
统计SQL数据表个数、占用字节
*************************************************
declare @id int
declare @type character(2)
declare @pages
int
declare @dbname sysname
declare @dbsize dec(15,0)
declare @bytesperpage dec(15,0)
declare @pagesperMB dec(15,0)
create table #spt_space
(
objid int null,
rows int null,
reserved dec(15) null,
...
阅读全文…
What is the difference between count
[ 2006-06-11 11:54:40 | 作者: admin ]
You Asked (Jump to Tom's latest followup)
What is the difference between count(1) and count(*) in a sql query
eg.
select count(1) from emp;
and
select count(*) from emp;
—————————————————————————————
and we said...
nothing, they are the same, incur the same amount of work -- do the same thing,
take the same amount of resources.
You can see this via:
...
阅读全文…
What is the difference between count(1) and count(*) in a sql query
eg.
select count(1) from emp;
and
select count(*) from emp;
—————————————————————————————
and we said...
nothing, they are the same, incur the same amount of work -- do the same thing,
take the same amount of resources.
You can see this via:
...
阅读全文…
Access 的最大容量
[ 2006-05-27 17:57:34 | 作者: admin ]
Access 的最大容量
以 Access 2000 中文版为例。打开帮助,找到以下条目:
设置和定义microsoft Access -> Microsoft Access 规格
Microsoft Access 数据库常规规格
Microsoft Access 数据库 (.mdb) 文件大小 2 G 字节。不过,由于数据库可以包括其他文件中的链接表,所以它的大小仅实际上只受可用存储空间大小的限制。
数据库中的对象个数 32,768
模块(包括 HasModule 属性为 True 的窗体和报表) 1,000
对象名称的字符数 64
密码的字符个数 14
用户名或组名的字符个数 20
用户个数 255
Microsoft Access 项目常规规格
在 Microsoft ...
阅读全文…
以 Access 2000 中文版为例。打开帮助,找到以下条目:
设置和定义microsoft Access -> Microsoft Access 规格
Microsoft Access 数据库常规规格
Microsoft Access 数据库 (.mdb) 文件大小 2 G 字节。不过,由于数据库可以包括其他文件中的链接表,所以它的大小仅实际上只受可用存储空间大小的限制。
数据库中的对象个数 32,768
模块(包括 HasModule 属性为 True 的窗体和报表) 1,000
对象名称的字符数 64
密码的字符个数 14
用户名或组名的字符个数 20
用户个数 255
Microsoft Access 项目常规规格
在 Microsoft ...
阅读全文…
随机抽取n个记录的SQL(mysql和sqlserver)
[ 2006-05-27 11:40:34 | 作者: admin ]
mysql: select * from tablename order by rand() limit 10
sqlserver: select top 10 * from tablename order by NEWID()
说明:
NEWID
创建 uniqueidentifier 类型的唯一值。
语法
NEWID ( )
返回类型
uniqueidentifier
例如:
我要随机取数据库里的信息10条,如果你的数据库是sqlserver的话,可用这样的方法:
select top 10 * from tablename order by newid()
sqlserver: select top 10 * from tablename order by NEWID()
说明:
NEWID
创建 uniqueidentifier 类型的唯一值。
语法
NEWID ( )
返回类型
uniqueidentifier
例如:
我要随机取数据库里的信息10条,如果你的数据库是sqlserver的话,可用这样的方法:
select top 10 * from tablename order by newid()