当前位置:首页 » 编程语言 » sybasesql

sybasesql

发布时间: 2022-02-06 11:05:12

A. 利用sql server 数据库存储过程连接sybase数据库

存储过程(stored
procere)是一组为了完成特定功能的sql
语句集,经编译后存储在数据库。中用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
在sql
server
的系列版本中存储过程分为两类:系统提供的存储过程和用户自定义存储过程。系统过程主要存储在master
数据库中并以sp_为前缀,并且系统存储过程主要是从系统表中获取信息,从而为系统管理员管理sql
server
提供支持。通过系统存储过程,ms
sql
server
中的许多管理性或信息性的活动(如了解数据库对象、数据库信息)都可以被顺利有效地完成。尽管这些系统存储过程被放在master
数据库中,但是仍可以在其它数据库中对其进行调用,在调用时不必在存储过程名前加上数据库名。而且当创建一个新数据库时,一些系统存储过程会在新数据库中被自动创建。用户自定义存储过程是由用户创建并能完成某一特定功能(如查询用户所需数据信息)的存储过程。

B. Sybase数据库与sql server有什么区别吗

你好,目前目前大型的数据库都采用oracle,中小型的用sqlServer,建议用sqlserver或者mysql。
sybase与sqlsrver的内在区别就是:
1.Sybase没有用户自定义函数。

2.判断fetch成功的全局变量是@@SQLstatus,而不是@@fetch_status。

3.没有set,赋值与查询通用select。

4.没有top,返回N行要使用set rowcount N / set rowcount 0

5.raiserror 22009 " "--> raiserror( ' ',16,1)

6.游标一定要在过程中使用,不能单独在查询中使用。

7.销毁游标要加cursor关键字.如:deallocate cursor cur_tmp

8.没有bigint类型。

9.create table #t(id numeric(12,0) identity not null),不支持int型,且不能设置起始值和步进值。

10.不能alter一个存储过程,要先drop掉再create。

11.没有len函数,使用char_length或datalength等效。

12.通过sysindexes中的doampg列可返回某表的行数,rowcnt(doampg) 。

13.convert函数没有120格式(yyyy-mm-dd hh:mm:ss),需要使用select convert(char(4),datepart(year,getdate()))+ '- '+right( '0 '+convert(varchar(2),datepart(month,getdate())),2)+ '- '+right( '0 '+convert(varchar(2),datepart(day,getdate())),2)+ ' '+convert(char(10),getdate(),8)

14.charindex不能从被查找字符串中按指定位置查找某字符串。

15.不能使用rtrim函数将数值型转为字符型。

16.没有cast函数,数值型到字符型转移使用select convert(varchar(10),123)

17.没有replace函数。

18.没有left函数,只有right函数。

19.不支持在字段上加[]。

20.select语句中不支持变量累加,例如:select @SQL=@SQL+colname from tablename

21.在过程及视图中系统会自动将select * 变为select 列1,列2...

22.varchar最大支持16384个字节(SQLServer中是8000) 。

23.Sybase不支持表变量。

24.Sybase不支持instead of触发器。

25.Sybase没有调度(注:定时执行某个操作) 。

C. sql怎么导入sybase数据库里的一个数据表

用工具把,mssql没这么智能,navicat下个破解版的 有导入导出功能

D. Sybase SQL Anywhere 怎么取数据库第一行

Sybase公司的数据库产品有 大型数据库:Sybase sqlserver 中型数据库:Sybase adaptive server 小型数据库:Sybase sql anywhere

E. 关于SYBASE SQL的问题,哪位仁兄帮解决一下。

SQL Server缺省情况下建立的索引是非聚簇索引,由于非聚簇索引不重新组织表中的数据,而是对每一行存储索引列值并用一个指针指向数据所在的页面。换句话说非聚簇索引具有在索引结构和数据本身之间的一个额外级。一个表如果没有聚簇索引时,可有250个非聚簇索引。每个非聚簇索引提供访问数据的不同排序顺序。在建立非聚簇索引时,要权衡索引对查询速度的加快与降低修改速度之间的利弊。另外,还要考虑这些问题:

1、索引需要使用多少空间。

2、合适的列是否稳定。

3、索引键是如何选择的,扫描效果是否更佳。

4、是否有许多重复值。

对更新频繁的表来说,表上的非聚簇索引比聚簇索引和根本没有索引需要更多的额外开销。对移到新页的每一行而言,指向该数据的每个非聚簇索引的页级行也必须更新,有时可能还需要索引页的分理。从一个页面删除数据的进程也会有类似的开销,另外,删除进程还必须把数据移到页面上部,以保证数据的连续性。所以,建立非聚簇索引要非常慎重。非聚簇索引常被用在以下情况:

1、某列常用于集合函数(如Sum,....)。

2、某列常用于join,order by,group by。

3、查寻出的数据不超过表中数据量的20%。

三、覆盖索引(covering indexes)的使用

覆盖索引是指那些索引项中包含查寻所需要的全部信息的非聚簇索引,这种索引之所以比较快也正是因为索引页中包含了查寻所必须的数据,不需去访问数据页。如果非聚簇索引中包含结果数据,那么它的查询速度将快于聚簇索引。

但是由于覆盖索引的索引项比较多,要占用比较大的空间。而且update操作会引起索引值改变。所以如果潜在的覆盖查询并不常用或不太关键,则覆盖索引的增加反而会降低性能。

F. sybase 下sql查询语句问题

使用外联接。
仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回
FROM
子句中提到的至少一个表或视图的所有行,只要这些行符合任何
WHERE

HAVING
搜索条件,数据库管理系统将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。
根据您说的情况,SQL如下:
SELECT
A.code,
A.name,
B.note
FROM
A
LEFT
JOIN
B
ON
A.code=B.code;
如果您使用的是Sybase数据库,那么这个SQL应该这样写:
SELECT
A.code,
A.name,
B.note
FROM
table_a
A,
table_b
B
WHERE
A.code
*=
B.code;
注意:用*=代替LEFT
JOIN。
如果您使用11.9.2及以上的Sybase版本,还可以这样写:
SELECT
A.code,
A.name,
B.note
FROM
A
LEFT
OUTER
JOIN
B
ON
A.code
=
B.code;

G. 求sybase sql anywhere5.0以上版本下载地址

http://www.sybase.com.cn/gvswse/site/china/sdn/iAnyDevDownload.jsp

H. oracle sql与sybase sql

SELECT COUNT(*),tbb.trans_date, tbb.trans_code
FROM tba,tbb
WHERE tba.trans_code =tbb.trans_code
GROUP BY tbb.trans_date,tbb.trans_code

这样其实效果是一样的,sybase不支持子查询很讨厌

I. sybase数据库查询数据

1.log文件用ultraedit就可以打开,下载一个安装就可;
2.我遇到的db文件,都是asa数据库的(sybase
sql
anywhere
7)可安装之后,打开\%sybase%\win32\dbisqlc.exe,输入用户名密码,浏览到该db文件,就可用sql语句对其内容进行查询。
另外,我在网上也搜到了一个方法:
后来装了个power
build
8,里面就有一步是要装sybase
7的数据库。安装完之后,就可以在控制面板的管理工具下面的odbc管理器中,添加sybase
驱动的这种db格式的数据源,然后就可以在office
access中导入这个odbc数据源,查看表里面的文件了。需要注意的是:db
文件的默认用户名密码是dba:sql,这是需要输入odbc的。

J. 求教一下sybase 专家,sybase数据库的sql语句可以在where条件加if then 么

你可以改造一下你的sql语句。
任何一个rdbms都不会支持你在where条件中加入if @loginname<>'' then 这样的条件的。 从逻辑上改造一下。

select * from EC_CARD
where charindex('N',EC_CARD.is_del) > 0
and @loginname<>'' and charindex(@loginname, EC_CARD.login_name) >0
我不知道你们的业务逻辑对于@loginname是如何处理的。
其实你也可把sql改造成:
if @loginname<>'' then
select * from EC_CARD
where charindex('N',EC_CARD.is_del) > 0
and charindex(@loginname, EC_CARD.login_name) >0
else
其它业务逻辑。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:741
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:372