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) 裡面改成你自己的欄位就可以了