sqlsybase
Ⅰ sybase sql语句中如何实现条件判断
你可以改造一下你的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
其它业务逻辑。
一 安装sybase客户端 版本:Sybase Client 11.9.2 for NT 1)安装完成后,运行开始->程序->sybase->Dsedit 2)选择菜单的'Server Object',-> 'Add' 输入服务名 比如 1.70 3)然后在Server列表中选择'1.70',双击右边的对话框server address栏,在Network Address Attribute对话框中 选择add 填入ip地址,比如132.228.1.70,4300,ok 确定 4)选择工具栏的Ping Server按钮测试是否能连通服务器 (红色的类似闪电的按钮) 二在ODBC中建立DSN 管理工具->数据源ODBC 新建一个系统DSN,名称设为 1.70 在创建新数据源对话框中选择'Sybase System11'数据源驱动程序, General属性的DSN datasouce name: 填入 1.70, database: 填入sybase数据库名 确定保存 三 建立链接服务器 企业管理器->安全性->建链接服务器->新建链接服务器 1)常规标签栏目中 名称sybase, 服务器类型选其他数据源,在提供程序的名称中选择Microsoft OLE DB Provider FOR ODBC, 数据源:填入DSN名字 1.70 2)安全性栏目中 本地登陆填入sa 远程用户和远程密码填入sybase的用户名和密码 3)使用此安全上下文建立连接 远程登陆 输入sybase的用户名和密码 使用密码 输入密码 确定保存 四用sa身份登陆查询分析器 执行以下sql语句就能查出sybase数据 select * from 链接服务器名(本例子为sybase).sybase的数据库名.dbo.sybase的表名 注意: 如果在执行查询时发现这个问题: 链接服务器 "sybase" 的 OLE DB 访问接口 "MSDASQL" 为列提供的元数据不一致。 解决办法:: 不要直接用select * from sybase.dbname.dbo.tablename这种语句,换个语句,就可以解决问题了。
Ⅲ sql2008如何将自己的一个表的数据自动插入到sybase数据库中的一张表里面
SYBASE数据库至少有两种,一个是ASE(企业版),另一个是ASA(单机版),前者与SQLServer很像(准确地说,SQLServer就是微软购买了ASE前身某版本后再自行改进、扩充的)。
看你的描述,似乎是ASA,因为谈论ASE,一般不提数据文件(data1.db),而是称为设备。
ASA的语法中有LOAD TABLE以及相反动作的导出命令,可以细查手册;ASE的数据迁移用bcp工具。
另外,ASE之间、ASE和ASA之间,甚至ASE和ORACLE、DB2等数据库之间,能够建立远程数据库映射,即在一个数据库服务器中访问异地资源,还允许和本地资源连接,当然了,这就高级和复杂多了,需要了解的知识自然更多。
Ⅳ 详细讲解SQL Server如何访问Sybase中的表
SQL Server访问Sybase中的表: 一、安装sybase客户端使用版本:Sybase Client 11.9.2 for NT (1)当安装完成后,运行开始->程序->sybase->Dsedit (2)选择菜单的'Server Object',-> 'Add' 输入服务名 例如 1.60 (3)然后在Server列表中选择'1.60',双击右边的对话框server address栏,在Network Address Attribute对话框中 选择add 填入ip地址,比如132.228.1.60,4300,ok 确定 (4)选择工具栏的Ping Server按钮测试是否能连通服务器 (红色的类似闪电的按钮) 二、在ODBC中建立DSN管理工具->数据源ODBC 新建一个系统DSN,名称设为 1.60 在创建新数据源对话框中选择'Sybase System11'数据源驱动程序, General属性的DSN datasouce name: 填入 1.60, database: 填入Sybase数据库名 然后确定保存 三、建立链接服务器企业管理器->安全性->建链接服务器->新建链接服务器 (1)常规标签栏目中 名称:Sybase,服务器类型选其他数据源,在提供程序的名称中选择Microsoft OLE DB Provider FOR ODBC,数据源:填入DSN名字 1.60 (2)安全性栏目中 本地登陆填入sa 远程用户和远程密码填入Sybase的用户名和密码 (3)使用此安全上下文建立连接 远程登陆 输入Sybase的用户名和密码 使用密码 输入密码 确定保存 四、用sa身份登陆查询分析器执行以下sql语句就能查出Sybase数据 select * from 链接服务器名(此例为Sybase).sybase的数据库名.dbo.Sybase的表名 注释: 如果在执行查询时发现这个问题: 链接服务器 "Sybase" 的 OLE DB 访问接口 "MSDASQL" 为列提供的元数据不一致。 具体解决办法:请不要直接用select * from sybase.dbname.dbo.tablename这样的语句,只要换个语句即可解决此问题。
Ⅳ sybase数据库 如何使用sql语句查询,数据库容量大小和数据库使用量大小
Sybase公司是世界着名的数据库厂家,其关系数据库产品SYBASE SQL Server在中国大中型企事业单位中拥有大量的用户。针对获取数据库相关信息也提供了对应的API,以便管理进行维护。
一.sp_spaceused 可看到数据库空间包括日志(对应数据库)
打开Sql Advantage 对话框——输入sp_spaceused(上边数据库选择要查的数据库)或直接
use your_db_name
go
sp_spaceused
go
运行!出现如下信息
Database name:数据库名称
Datebase Size:数据库空间总大小
Reserved:已分配空间
data数据:已分配空间中数据占用空间大小
index_size索引:已分配空间中index_size索引占用空间大小
unused:为已分配空间中未使用空间大小
计算关系:
reserved(已分配空间)=data+index_size+unused
剩余空间= Datebase Size(总空间)—已分配空间(resrved)
二.sp_helpdb db_name 可看到数据库占用的数据库设备device的空间信息(对应数据库设备和数据库)
打开Sql Advantage 对话框——输入sp_s helpdb db local(local为要看的数据库名字如不输入则显示所有数据库)
运行!显示如下信息:
(一).数据库方面
1. name:数据库名字
2. db_size:数据库空间大小
3. owner:数据库所有者
4. created:数据库创建时间
5. status:状态
(二).数据库设备方面
1. device_fragments:数据库设备名称
2. size:数据库占用数据库设备的空间大小 单位MB
3. usage:用法 用途
4. created:数据库占用的数据库设备的空间的创建时间
5. free kbytes :数据库占用的数据库设备的剩余空间 单位KB
6. log only free
kbytes:数据库日志设备中日志剩余空间 单位KB
注意:由于数据库创建后不一定全部占用数据库设备的所有空间,可以在以后通过增加的方法占用设备空间,因此每增加一次就会有一条数据库设备信息
计算关系:
剩余空间=所有free Kbytes(剩余KB)相加+log only
free Kbytes
数据库占用数据库设备总空间(size)=size1+size2+……..(所有相加)=数据库总空间(db_size)=
reserved(已分配空间)+剩余空间
free Kbytes(剩余KB)相加+log only free Kbytes= Datebase
Size(总空间)—已分配空间(resrved)
Ⅵ 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没有调度(注:定时执行某个操作) 。
Ⅶ sql,sybase,三个字段建立联合唯一约束
建立主键就可以了,如果已经有了主键,而是想在这三个字段上建唯一约束constraint un_id_time unique(id,name,sex) 里面改成你自己的字段就可以了