Sybase中SQL语言概述

时间:2022年12月31日

/

来源:大头菜

/

编辑:本站小编

收藏本文

下载本文

这次小编给大家整理了Sybase中SQL语言概述,本文共6篇,供大家阅读参考,也相信能帮助到您。本文原稿由网友“大头菜”提供。

篇1:Sybase中SQL语言概述

SQL(结构化查询语言)是关系数据库语言的一种国际标准,它是一种非过程化的语言,通过编写SQL,我们可以实现对关系数据库的全部操作。

●数据定义语言(DDL)——建立和管理数据库对象

●数据操纵语言(DML)——用来查询与更新数据

●数据控制语言(DCL)——控制数据的安全性

T-SQL语言是Sybase对SQL92标准的一种扩展,主要在它的基础上增加了三个方面的功能:自己的数据类型/特有的SQL函数/流程控制功能

T-SQL中的标识符使用说明:

(1)标识符由1-30个字符或数字构成,但首字符必须为字母,

临时表的表名以#开头,长度不能超过13个字符。

(2)数据库对象的标识方法举例

database.owner.tablename.columnname

执行远程存储过程:

EXEC server.db.owner.proc_name

当执行语句在批处理的句首时,EXEC可以省略。

篇2:Sybase SQL Anywhere主要包括哪些组件

SQL Anywhere Studio是一个用于服务器、桌面、移动、嵌入式和远程办公环境的数据治理和同步解决方案,SQL Anywhere 的主要特点——小如指印、企业级特性、出色的高性能、方便易用——已成为成千上万家公司的首选,它们的应用没有运行在数据中心。

以下是 SQL Anywhere 的几个组件:

1.Adaptive Server Anywhere:它是一个既能适应手持设备又合适企业级别安装的数据库治理系统。Adaptive Server Anywhere

拥有出色的高性能,简单易用,几乎不需要治理,

2.UltraLite:专用于运行Windows CE,Palm OS或Windows XP移动设备上的数据库治理系统。UltraLite 仅需要极少资源就能拥有性能和安全性的优化组合。

3.MobiLink:数据同步技术,让您能在许多 Adaptive ServerAnywhere/UltraLite 与您的后端数据库之间共享数据,无论其是Sybase、Microsoft、Oracle或IBM。

4.QAnywhere 消息:移动、无线客户端、桌面或膝上客户端的消息平台。Qanywhere 提供了应用到应用的消息和通知最终用户的消息机制。

篇3:Sybase SQL Server的主要内容

Sybase SQL Server是一个多库结构的RDBMS,体系结构大致如下:

1.数据库

服务器自身所使用的数据库,也可以说是管理服务器和用户数据库的数据库,Sybase在安装时,自动创建了四个系统数据库:

master、model、tempdb、sybsystemprocs

(1) master数据库

它是管理和控制用户数据库以及维护服务器正常运行的核心数据库,它保存了大量的系统信息,如服务器配置、用户、设备等。

在master数据库中不允许普通用户在其中创建数据库对象,否则会使得master数据库的事务日志很快变满。如果事务日志用尽,就无法使用dump transaction命令释放master数据库中的空间。

(2)model数据库

它是为创建用户数据库而提供的模板。每当创建新的数据库时,SQL Server自动建立model数据库的一份拷贝,并把它扩充到用户所要求的大小,以此作为新用户数据库。

Model数据库中包含每个用户数据库所要求的系统表。Model数据库可以被修改以便定制新创建的。

(3)tempdb数据库

它是个临时数据库,为服务器运行与处理提供一个共享的存储区域,如group by和order by的中间结果就存放在这里,

Tempdb的空间为服务器中所有数据库的所有用户所共享。

每次重启SQL Server,服务器的一个自动进程都拷贝model数据库到tempdb数据库,并清除tempdb中原来的内容。因此tempdb中的用户表都是临时的。临时表分为两类:可共享的和不可共享的。不可共享的临时表在由create table中将符号#置于表名之前创立;可共享的临时表通过create table中指定表名前缀tempdb..而创立。不可共享的临时表SQL Server自动为其添加数字后缀名,且它只存在于当前会话中。

(4)sybsystemprocs数据库master数据库

它是专门用来保存系统命令(存储过程)的数据库,如sp_help、sp_configure、sp_helpdevice等。当任一数据库用户运行以sp_开头的存储过程时,SQL Server按照以下顺序查找:当前数据库、sybsystemprocs数据库、master数据库。

2.用户数据库

用户数据库是我们使用Sybase服务器的真正目的。要管理用户数据,必须在Sybase中创建自己的数据库,它是指用create database命令创建的数据库。不能存取master数据库的用户是无权创建新的数据库的。

数据库中的主要内容——数据库对象:

表、视图、临时表

索引、主键、外键

缺省值、规则

存储过程、触发器等

篇4:Sybase SQL Server日志问题普及

Sybase SQL Server 的每一个数据库,无论是系统数据库(master,model, sybsystemprocs, tempdb),还是用户数据库,都有自己的transaction log,每个库都有 syslogs表,Log记录用户对数据库修改的操作,所以如果不用命令清除, log会一直增长直至 占满空间。清除log可用dump transaction 命令;或者开放数据库选项trunc log on chkpt, 数据库会每隔一段间隔自动清除log。管理好数据库log是用户操作数据库必须考虑的一面。

下面就几个方面谈谈log及其管理:

一、SQL Server 如何记录及读取日志信息

我们知道,SQL Server是先记log的机制。Server Cache Memory中日志页总是先写于数据页:

Log pages 在commit ,checkpoint,space needed 时写入硬盘。

Data pages 在checkpoint,space needed 时写入硬盘。

系统在recovery 时读每个database 的syslogs 表的信息,回退未完成的事务 (transaction)(数据改变到事务前状态);完成已提交的事务(transaction)(数据改变为事 务提交后的状态)。在Log中记下checkpoint点。这样保证整个数据库系统的一致性和完整性。

二、Transaction logs 和checkpoint 进程

checkpoint 命令的功能是强制所有“脏”页(自上次写入数据库设备后被更新过的页)写 入数据库设备。自动的checkpoint 间隔是由SQL Server 根据系统活动和系统表 sysconfigures中的恢复间隔(recovery interval)值计算出的。通过指定系统恢复所需的时 间总量,恢复间隔决定了checkpoint 的频率。

如果数据库开放trunc log on chkpt选项,则SQL Server在数据库系统执行checkpoint时 自动清除log。但用户自己写入执行的checkpoint命令并不清除log,即使trunc log on chkpt 选项开放。只有在trunc log on chkpt选项开放时,SQL Server自动执行checkpoint动作,才 能自动清除log 。这个自动的checkpoint动作在SQL Server中的进程叫做checkpoint进程。当 trunc log on chkpt选项开放时,checkpoint进程每隔0秒左右清除log,而不考虑recovery interval设置时间的间隔。

三、Transaction log 的大小

没有一个十分严格的和确切的方法来确定一个数据库的log应该给多大空间。对一个新建的 数据库来说,log大小为整个数据库大小的20%左右。因为log记录对数据库的修改,如果修改 的动作频繁,则log的增长十分迅速。所以说log空间大小依赖于用户是如何使用数据库的。

例如:

◆update,insert和delete 的频率

◆每个transaction 中数据的修改量

◆SQL Server系统参数recovery interval 值

◆log是否存到介质上用于数据库恢复

还有其它因素影响log大小,我们应该根据操作估计log大小,并间隔一个周期就对log进行 备份和清除。

四、检测log 的大小

若log 在自己的设备上,dbcc checktable (syslogs) 有如下信息:

例:

***NOTICE:space used on the log segment is

12.87Mbytes,64.35%

***NOTICE:space free on the log segment is 7.13Mbytes,35.65%

根据log剩余空间比例来决定是否使用dump transaction 命令来备份和清除log。

用快速方法来判断transaction log 满的程度。

1>;use database_name

2>;go

1>;select data_pgs (8,doa mpg)

2>;from sysindexes where id=8

3>;go

Note:this query may be off by as many as 16 pages.

在syslogs 表用sp_spaceused 命令。

五、log 设备

一般来说,应该将一个数据库的data和log存放在不同的数据库设备上。这样做的好处:

◆可以单独地备份(back up)transaction log

◆防止数据库溢满

◆可以看到log空间的使用情况。[dbcc checktable (syslogs)]

◆可以镜像log设备

六、log 的清除

数据库的log是不断增长的,必须在它占满空间之前清除。前面已经讨论过,清除log可以 开放数据库选项trunc log on chkpt,使数据库系统每隔一段时间间隔自动清除log,还可以 执行命令dump transaction 来清除log.trunc log on chkpt 选项同dump transaction with truncate_only 命令一样,只是清除log而不保留log到备份设备上。所以如果只想清除log而 不做备份,可以使用trunc log on chkpt 选项及dump transaction with truncate_only,dump transaction with no_log 命令。若想备份,应做dump transaction database_name to dumpdevice。

七、管理大的transactions

有些操作是大批量地修改数据,log增长速度十分快,如:

◆大量数据修改

◆删除一个表的所有记录

◆基于子查询的数据插入

◆批量数据拷贝

下面讲述怎样使用这些transaction 使log 不至溢满:

大量数据修改

例:

1>;update large_tab set col_1=0

2>;go

若这个表很大,则此update动作在未完成之前就可能使log满,引起1105错误(log full)而且执行这种大的transaction所产生的exclusive table loc,阻止其他用户在update期间修 改这个表,这可能引起死锁。为避免这些情况,我们可以把这个大的transaction分成几个小 的transactions,并执行dump transaction 动作。

上述例子可以分成两个或多个小transactions.

例如:

1>;update large_tab set col1=0

2>;where col2 3>;go

1>;dump transaction database_name with truncate_only

2>;go

1>;update large_tab set col1=0

2>;where col2>;=x

3>;go

1>;dump transaction database_name with truncate_only

2>;go

若这个transaction 需要备份到介质上,则不用with truncate_only 选项。若执行dump transaction with truncate_only,应该先做dump database 命令。

删除一个表的所有记录

例:

1>;delete table large_tab

2>;go

同样,把整个table的记录都删除,要记很多log,我们可以用truncate table命令代替上 述语句完成相同功能。

1>;truncate table large_tab

2>;go

这样,表中记录都删除了,而使用truncate table 命令,log只记录空间回收情况,而不 是记录删除表中每一行的操作。

基于子查询的数据插入

例:

1>;insert new_tab select col1,col2 from

large_tab

2>;go

同样的方法,对这个大的transaction,我们应该处理为几个小的transactions。

1>;Insert new_tab

2>;select col1,col2 from large_tab where col1<=y

3>;go

1>;dump transaction database_name with truncate_only

2>;go

1>;insert new_tab

2>;select col1,col2 from large_tab where col1>;y

3>;go

1>;dump database database_name with truncate_only

2>;go

同样,若想保存log到介质上,则dump transaction 后不加with truncate_only 选项。若 执行dump transaction with truncate_only,应该先做dump database 动作。

批量数据拷贝

在使用bcp把数据拷入数据库时,我们可以把这个大的transaction变成几个小的 transactions处理,避免log剧增。

开放trunc log on chkpt 选项

1>;use master

2>;go

1>;sp_dboption database_name,trunc,true

2>;go

1>;use database_name

2>;go

1>;checkpoint

2>;go

bcp... -b 100 (on unix)

bcp... /batch_size=100(on vms)

关闭trunc log on chkpt选项,并dump database,

在这个例子中,一个批执行100行拷贝。也可以将bcp输入文件分成两或多个分开的文件, 在每个文件执行后做dump transaction 来避免log 满。

若bcp使用快速方式(无索引,无triggers),这样操作不记log,换句话说,log 只记载 空间分配情况。在这种情况下,要先做dump database(为恢复数据库用)。若log太小,可置 trunc log on chkpt 选项,这样在每次checkpoint后清除log。

八、Threshold 和transaction log 管理

SQL Server提供阈值管理功能,它能帮助用户自动监视数据库log设备段的自由空间。

在使用Sybase数据库管理系统(SQL Server)开发企业应用系统时,或者开发好的数据库 应用系统投入实际运行后,由于用户不断地增加或者修改数据库中的数据,用户数据库的自由 存储空间会日益减少。特别是数据库日志,增长速度很快。一旦自由空间用尽,SQL Server在 缺省情况下挂起所有数据操纵事务,客户端应用程序停止执行。这样有可能会影响企业日常业 务处理流程。Sybase SQL Server System10提供自动监视数据库自由存贮空间的机制——阈值 管理,当数据库使用剩余空间低于一定值时,通过执行一个自定义的存储过程,来控制自由空 间。在空间用完之前,采取相应措施,这样有利于业务处理顺利进行。如果能充分利用SQL Server的阈值管理功能,用户能使一些数据库管理工作自动化,规程化。所以,在此我们将 SQL Server这一重要功能介绍给读者。

SQL Server的阈值管理允许用户为数据库的某个段上的自由空间设置阈值和定义相应的存 储过程。当该段上的自由空间低于所置阈值时,SQL Server自动运行相应存储过程。与阈值相 对应的存储过程由用户定义,SQL Server不提供。一般来说,数据库管理员可通过这些存储过 程来完成一些日常管理事务,例如:

◆备份数据库,清理日志和删除旧数据

◆备份数据库日志

◆扩展数据库空间

◆拷贝出表中的内容,清理日志,等等。

1.段(Segment)

SQL Server的阈值管理是基于段(Segment)的,因此,让我们先回顾一下段的概念。每个 数据库创建时,它有三个缺值段:(1)System段;(2)default段;(3) logsegment段。 以后,还可以为该数据库增加用户自定义段。将来所有的数据库对象都建立在这些段上,要么 是系统定义的段,要么是用户定义的段。数据库的系统表存放在System段上。在没有指明段时 ,建立的对象存放在default段上。数据库的事务日志放在logsegment段上,该段是通过使用 建立数据库( Create database )命令的log on 选项来定义的。

2.最后机会阈值(Last_chance Threshold)

缺省情况下,SQLServer监测日志段的自由空间,当自由空间量低于事务日志能成功转储的 需要时,SQL Server运行sp_ thresholdaction过程。此自由空间量称为最后机会阈值( Last_chance threshold ),它由SQL Server计算得来,并且用户不能改变。

sp_thresholdaction必须由用户编写,SQL Server不提供。另外,如果最后机会阈值越出 ,那么在日志空间释放前,SQL Server一直挂起所有事务。但可以使用sp_dboption对某一数 据库来改变这一行为。设置abort tran on log full选项为true,可使得最后机会越出时, SQL Server撤回所有还未被注册的事务。

3.阈值管理

系统缺省建立最后机会阈值,由用户编写缺省阈值处理存储过程( sp_thresholdaction ),来控制自由空间。除此之外,还可以使用以下存储过程管理阈值:

◆sp_addthreshold 建立一个阈值

◆sp_dropthreshold 删除一个阈值

◆sp_helpthreshold 显示阈值有关的信息

◆sp_dboption 改变阈值的“挂起或取消”行为和取消阈值管理

◆sp_helpsegment 显示某个段上空间大小和自由空间大小的信息

4.增加阈值(sp_addthreshold)

它用于创建阈值( threshold )来监测数据库段中空间的使用。如果段中自由空间低于指 定值,SQL Server运行有关的存储过程。增加阈值的命令语法为:

sp_addthreshold database, segment, free_pages, procedure

其中:

◆database——要添加阈值的数据库名。必须是当前数据库名称。

◆segment——其自由空间被监测的段。当指定“default“ 段时要用引号。

◆free_pages——阈值所指的自由空间页数。当段中自由空间低于该标准时,SQL Server 运行有关存储过程。

◆procedure——当segment中的自由空间低于free_pages时,SQL server 执行该存储过程 。该过程可以放置在当前SQL Server或Open server的任意数据库中。但是,超出阈值时,不 能执行远程SQL Server上的存储过程。

例如:sp_addthreshold pubs2, logsegment, 200, dump_transaction

其中,存储过程定义为:

create procedure dump_transaction

@ dbname varchar (30),

@ segmentname varchar (30),

@ space_left int,

@ status int

as

dump transaction @dbname to “/dev/rmtx”

那么,当日志段上可用空间小于200页时,SQL Server运行存储过程dump_transaction,将 pubs2 数据库的日志转储到另一台设置上。

sp_addthreshold不检查存储过程存在已否。但当阈值越出时,如果存储过程不存在,SQL Server把错误信息送到错误日志( errorlog )中。系统允许每个数据库有256个阈值,而同 一段上二个阈值之间的最小空间为128页。其存储过程可以是系统存储过程,也可是在其它数 据库里的存储过程,或者Open Server远过程调用。

5.删除阈值(sp_dropthreshold)

它删除某个段的自由空间阈值,但是不能删除日志段的最后机会阈植。删除阈值的命令语 法为:

sp_dropthreshold database_name,segment_name,free_pages

其中三个参数分别为:阈值所属数据库名,阈值所监测的自由空间的段名,和自由空间页 。例如:

sp_dropthreshold pubs2, logsegment, 200 (删除 pubs2库中logsegment段的阈值200)

6.显示阈值(sp_helpthreshold)

它报告当前数据库上与所有阈值有关的段,自由空间值,状态以及存储过程或报告某一特 定段的所有阈值。显示阈值的语法为:

sp_helpthreshold [segment_name]

其中segment_name是当前数据库上一个段的名字。

例如:

◆sp_helpthreshold logsegment 显示在日志段上的所有阈值

◆sp_helpthreshold 显示当前数据库上所有段上的全部阈值

7.sp_dboption的新选择

abort xact when log is full

当日志段的最后机会阈值被超越时,试图往该日志段上记日志的用户进程将被挂起还是被 撤回?缺省情况下系统挂起所有进程。但是可以使用sp_aboption改变它。执行sp_dboption salesdb,"abort xact when log is full",true 命令后,一旦日志满了,则数据库修改事 务将会被回滚。

disable free space acctg

这个选择取消数据库中的阈值管理,但不影响最后机会阈值。执行:sp_dboption saledb, "disable free space acctg",true 它取消对非日志段上自由空间的统计。取消后,对系统 有以下影响:

◆SQL Server仅计算日志段上的自由空间

◆日志段上的阈值继续处于活动状态

◆在数据段上,系统表不改变,并且sp_spaceused得到的值是该选择被取消时刻的值

◆数据库段上的阈值失效

◆恢复加快

8.阈值的触发过程

频繁的插入和删除可能会使数据库段中的空间波动,阈值可能被多次超越,SQL Server使 用系统变量@@thresh_hysteresis,避免连续触发阈值存储过程。它的值由SQL Server设定。 在system 10.0中,@@thresh_hysteresis是64页。

因此,增加一个阈值,它必须与下一个最近的阈值相距至少2*@@thresh_hysteresis页。

一个阈值被触发,需要以下几个条件成立:

◆必须到达阈值

◆阈值处于活动状态(即它被建立后或者自由空间达到阈值减于@@thresh_hysteresis)

◆只有自由空间减少阈值才触发,如果自由空间增加,它永远不触发

篇5:同时访问SQL SERVER和SYBASE数据库

对于一个系统管理员,要同时管理一个网络中的多个数据库服务器或者是互连网中分属不同网络的多个数据库服务器,首先要解决同时连通访问这些数据库服务器的问题,一般来说,各种数据库必须使用自己相应的客户端工具进行连接,而不能连接另外的数据库。微软公司的SQLSERVER6.0数据库是从SYBASE4.2数据库发展而来,其自身的客户端工具是不能连接SYBASE10或SYBASE11数据库的。另外SYBASE11客户端所带工具WISQLl32可以分段执行一个SQL文件中的任一选择部分,这样给管理数据库服务器,调试存储过程、触发器带来了很大的方便。这个功能在微软公司的SQLSERVER6.0数据库客户端所带工具ISQL_W所不具备的。

一.系统环境

为了简化起见,假设只在一个网络环境中,只有一台网络服务器,在这台网络服务器上同时安装了MSSQLSERVER6.0、SYBASE11(或者SYBASE10,建议不要同时安装SYBASE11和10两个版本)。不考虑单一网络多台服务器或互联网络多台网络服务器环境。但是无论什么环境,应用同样的方法都可以实现WISQLl32对分布在一台或多台网络服务器上数据库服务器的访问。

1.网络服务器:WINDOWSNT3.51或4.0网络操作系统,内存64MB以上,奔腾133以上,网络协议为TCP/IP,主域控制器名RMYH,网络服务器的计算机名DBSERVER。

2.在DBSERVER网络服务器上同时安装的MSSQLSERVER6.0数据库服务器名为DBSERVER(与网络服务器同名),SYBASE11数据库服务器包含SYBASE11(SQL服务器)、SYBASE11-BS(BACKUP服务器)、SYBASE11-MS(MONITOR服务器)、SYBASE11-HS(HISTORY服务器)四个数据库服务器(SYBASE10数据库服务器只包含SYABSE10,SYBASE10-BS、SYBASE10-MS三个数据库服务器)。

3.客户机:中文WINDOWS95,SYABSEFORWINDOWS95客户端工具

二.配置SYABSEFORWINDOWS95客户端工具

SQLEDIT是SYBASE与平台无关的程序,用来配置客户连接,SQLEDIT用于编辑SYBASE根目录下INI子目录中名为SQL.INI的文件,也可以人工地编辑SQL.INI文件,但是借助SQLEDIT的图形工具要容易一些,并且可以把错误推给SYBASE。SQLEDIT的使用方法请参考有关SYBASE的说明书。本文主要讨论在SQL.INI如何选择参数来使WISQL同时访问MSSQLSERVER和SYBASE11数据库服务器。

WINDOWSNT可以选择NetBEUI、IPX/SPX、TCP/IP三种网络协议来组建网络,SYBASE11(或者SYBASE10)数据库服务器安装时,会根据网络协议来生成NET-LIBRARY驱动程序,三种网络协议都能生成名为NLMSNMP(命名管道)的NET-LIBRARY驱动程序,其中对于TCP/IP网络协议,还多生成一个名为NLWNSCK(软插口)的NET-LIBRARY驱动程序,所以笔者选择使用TCP/IP构成的WINDOWSNT网络作为分析的环境。

使用SQLEDIT或编辑软件配置好的SQL.INI文件内容如下(SQL.INI文件在c:\\sybase\\ini目录中):

[MSSQL6.0]

$BASE$00=NLMSNMP,\\\\ dbserver \\pipe\\sql\\ query

$BASE$01=NLWNSCK,dbserver,1433

query=$BASE$00;$BASE$01;

$BASE$02=NLMSNMP,\\\\dbserver\\pipe\\sql\\query

$BASE$03=NLWNSCK,dbserver,1433

master=$BASE$02;$BASE$03;

[SYBASE11]

$BASE$00=NLWNSCK,dbserver,5000

$BASE$01=NLMSNMP,\\\\dbserver\\pipe\\sybase\\query

master=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK,dbserver,5000

$BASE$03=NLMSNMP,\\\\dbserver\\pipe\\sybase\\query

query=$BASE$02;$BASE$03;

[SYBASE11_BS]

$BASE$00=NLWNSCK,dbserver,5001

$BASE$01=NLMSNMP,\\\\dbserver\\pipe\\sybase\\ backup

query=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK,dbserver,5001

$BASE$03=NLMSNMP,\\\\dbserver\\pipe\\sybase\\backup

master=$BASE$02;$BASE$03;

[SYBASE11_MS]

$BASE$00=NLWNSCK,dbserver,5002

$BASE$01=NLMSNMP,\\\\dbserver\\pipe\\sybase\\monitor

master=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK,dbserver,5002

$BASE$03=NLMSNMP,\\\\dbserver\\pipe\\sybase\\monitor

query=$BASE$02;$BASE$03;

[SYBASE11_HS]

$BASE$00=NLWNSCK,dbserver,5003

$BASE$01=NLMSNMP,\\\\dbserver\\pipe\\sybase\\hist

master=$BASE$00;$BASE$01;

$BASE$02=NLWNSCK,dbserver,5003

$BASE$03=NLMSNMP,\\\\dbserver\\pipe\\sybase\\ hist

query=$BASE$02;$BASE$03;

[SYBASE10]

$BASE$00=NLMSNMP,\\\\dbserver\\pipe\\sql10\\query

$BASE$01=NLWNSCK,dbserver,5000

master=$BASE$00;$BASE$01

$BASE$02=NLMSNMP,\\\\dbserver\\pipe\\sql10\\query

$BASE$03=NLWNSCK,dbserver,5000

query=$BASE$02;$BASE$03

[SYBASE10_BS]

$BASE$00=NLMSNMP,\\\\dbserver\\pipe\\sql10\\backup

$BASE$01=NLWNSCK, dbserver,5001

query=$BASE$00;$BASE$01;

$BASE$02=NLMSNMP,\\\\dbserver\\pipe\\sql10\\backup

$BASE$03=NLWNSCK,dbserver,5001

master=$BASE$02;$BASE$03;

[SYBASE10_MS]

$BASE$00=NLMSNMP,\\\\dbserver\\pipe\\sql10\\ monitor

$BASE$01=NLWNSCK,dbserver,5002

master=$BASE$00;$BASE$01;

$BASE$02= NLMSNMP,\\\\dbserver\\pipe\\sql10\\monitor

$BASE$03= NLWNSCK,dbserver,5002

query=$BASE$02;$BASE$03;

从以上sql.ini文件内容可以看出:

①使用TCP/IP软插口的格式为

NLWNSCK,网络服务器名称,软插口地址

②使用命名管道的格式为

NLMSNMP,\\\\网络服务器名称\\pipe\\数据库类型\\数据库服务器简称

注意:网络服务器名称是指网络服务器本身的计算机名称,

如果在互联网络具有多台网络服务器环境中,网络服务器名称应该包含域名,这样就可以访问不同网络中的数据库服务器。在单一网络中可以省略域名,如果单一网络中各个数据库服务器安装在不同的机器上,应注意将网络服务器名称改成相应的计算机名称。

③软插口地址、数据库类型、数据库服务器简称等参数的变化见下表1

数据库服务器名称 简称数据库 类型 软插口地址

MSSQL6.0 SQL Query Sql 1433

SYBASE11 SQL Query Sybase 5000

SYBASE11_ BS Backup Sybase 5001

SYBASE11_MS Monitor Sybase 5002

SYBASE11_HS Hist Sybase 5003

SYBASE10 SQL Query Sql10 5000

SYBASE10 BS Backup Sql10 5001

SYBASE10_MS Monitor Sql10 5002

表1.SQL.INI文件中参数变化表

三.连通测试及分析

连通测试使用SYBPING,连通成功会出现提示:

①使用命名管道:

connection to server联接通道 was sucessful

loaded netlibrary driver‘NLMSNMP Named pipes driver驱动程序名

②使用软插口:

connection to server联接通道 was sucessful

loaded netlibrary driver‘NLWNSCK.DLL driver驱动程序名

连通不成功时出现提示:

①使用命名管道:

connection to server联接通道 was failed

loaded netlibrary driver‘NLMSNMP Named pipes driver驱动程序名

②使用软插口

connection to server联接通道 was failed

loaded netlibrary driver‘NLWNSCK.DLL driver驱动程序名

使用SYPING,选择相应的数据库服务器,提示中可能出现的参数见表2:

数据库服务器名称  联接通道驱动程序

MSSQL6.0 SQL \\pipe\\sql\\query NLMSNMP.DLL

Dbserver,1433 NLWNSCK.DLL

SYBASE11 SQL \\pipe\\sybase\\ query NLMSNMP.DLL

Dbserver,5000 NLWNSCK.DLL

SYBASE11_ BS \\pipe\\sybase\\ backup NLMSNMP.DLL

Dbserver,5001 NLWNSCK.DLL

SYBASE11_MS \\pipe\\sybase\\ monitor NLMSNMP.DLL

Dbserver,5002 NLWNSCK.DLL

SYBASE11_HS \\pipe\\sybase\\ hist NLMSNMP.DLL

Dbserver,5003 NLWNSCK.DLL

SYBASE10 SQL \\pipe\\sql10\\query NLMSNMP.DLL

Dbserver,5000 NLWNSCK.DLL

SYBASE10 BS \\pipe\\sql10\\ backup NLMSNMP.DLL

Dbserver,5001 NLWNSCK.DLL

SYBASE10_MS \\pipe\\sql10\\ monitor NLMSNMP.DLL

Dbserver,5002 NLWNSCK.DLL

表2.提示中可能出现的联接通道和驱动程序一览表

注意:驱动程序名应该是包含有路径的全名。表格2中省略了路径“c:\\sybase\\dll\”。

篇6:Sybase ASA中查询元信息的几个常用SQL函数

Sybase ASA中查询元信息的几个常用SQL函数:

sp_column_privileges Unsupported

sp_columns table-name [, table-owner ] [, table-qualifier] [, column-name] 返回指定列的数据类型

sp_databases Unsupported

sp_datatype_info Unsupported

sp_fkeys pktable_name [, pktable-owner][, pktable-qualifier] [, fktable-name] [, fktable_owner] [, fktable-qualifier] 表的外键信息

sp_pkeys table-name [, table_owner] [, table_qualifier] 表的主键信息

sp_server_info Unsupported

sp_special_columns table_name [, table-owner] [, table-qualifier] [, col-type] 表的标识行的特定列的信息

sp_sproc_columns proc-name [, proc_owner] [, proc-qualifier] [, column-name] 存储过程的输入输出参数信息

sp_stored_procedures [sp-name] [, sp-owner] [, sp-qualifier] 一个或者多个存储过程信息

sp_statistics [table_name] [, table_owner] [, table_qualities] [, index_name] [, is_unique] 表及其索引列的信息

sp_tables table-name [, table-owner] [, table-qualifier] [, table-type] 指定表的信息

例:

1.查询数据库jagdemo里有哪些表

sp_tables

current database,creator,tname,ifif SYSTABLE.table_type = 'B,null

'jagdemo','SYS','SYSARTICLE','SYSTEM TABLE',

'jagdemo','SYS','SYSARTICLECOL','SYSTEM TABLE',

'jagdemo','DBA','account','TABLE',

'jagdemo','SYS','SYSREMOTEUSER','SYSTEM TABLE',

'jagdemo','SYS','SYSSUBSCRIPTION','SYSTEM TABLE',

'jagdemo','SYS','SYSUSERMESSAGES','SYSTEM TABLE',

'jagdemo','SYS','SYSUSERTYPE','SYSTEM TABLE',

'jagdemo','SYS','SYSEXTENT','SYSTEM TABLE',

'jagdemo','SYS','SYSREMOTETYPE','SYSTEM TABLE',

'jagdemo','SYS','SYSSQLSERVERTYPE','SYSTEM TABLE',

'jagdemo','SYS','SYSTYPEMAP','SYSTEM TABLE',

'jagdemo','SYS','SYSUSERLIST','VIEW',

'jagdemo','SYS','SYSCOLAUTH','VIEW',

'jagdemo','SYS','SYSINDEXES','VIEW',

'jagdemo','SYS','SYSUSERAUTH','VIEW',

2.查询表account的列信息

sp_columns account

jagdemo DBA account balance 7 real 7 4 0 10 0 59 2

jagdemo DBA account student_id 1 char 16 16 0 0

SQL语言学习的自我总结

Sybase的数据类型

SQL中自己创建函数,分割字符串

个人简历中自我评价概述的写作方法

自我介绍中的语言描写

下载Sybase中SQL语言概述(共6篇)
Sybase中SQL语言概述.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
点击下载本文文档