欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Access與sql server的語法區(qū)別總結(jié)

 更新時間:2007年03月11日 00:00:00   投稿:mdxy-dxy  
這篇文章主要介紹了Access與sql server的語法區(qū)別總結(jié),需要的朋友可以參考下

下邊列出sql server與access的語法差別,方便更換程序數(shù)據(jù)庫時查詢。

日期分隔符號
  access:英鎊符(#)
  sql server:撇號(')

Boolean 常量
  access:True、False;On、Off;Yes、No;整數(shù):-1(真)、0(假)。
  sql server:整數(shù):1(真)、0(假)

字符串連接
  access:和號(&)
  sql server:加號(+)

通配符
  access:星號(*)與零個或更多字符匹配。 
      問號(?)與單個字符匹配。
      嘆號(!)意味著不在列表中。
      英鎊符(#)意味著單個數(shù)字。
  sql server:百分號(%)與零個或更多字符匹配。 
      下劃線(_)與單個字符匹配。
      上插入符(^)意味著不在列表中。
      沒有與英鎊符(#)對應(yīng)的字符。

DROP INDEX
  access:Drop Index <索引名> ON <表名>
  sql server:Drop Index <表名>.<索引名>

表添加標(biāo)識列
  access:alter table <表名> add <列名> Counter(1,1)
  sql server:alter table <表名> add <列名> bigint identity(1,1) not null

一、有區(qū)別的函數(shù)及解決方案 

以下所示的解決方案中的函數(shù)定義在untDataBase單元中TAdoConn類的方法中。

簡述 Access語法 SqlServer語法 Oracle語法 DB2語法 解決方案
01 系統(tǒng)時間 Date() GETDATE() SYSDATE   GetSysTimeStr
02 連接字符串 & + || + GetConcatStr
03 截取字符串 SubString
SubStr
SubString SubString GetSubStr
04 小寫字符串 LCase Lower Lower Lower GetLowerStr
05 大寫字符串 UCase Upper
Upper
Upper
GetUpperStr
06 查找字符串 InStr
InStr
CharIndex
InStr
GetFindStr
07 替換空值 IIF+IsNull Coalesce
Nvl Coalesce GetNullStr
08 條件取值 IIF Case+When+Else DeCode或Case
IIF
GetCaseStr
09 字段類型轉(zhuǎn)換 Str、var、…. Convert或cast
To_Char,To_Number. GetConvertStr
GetConvertStr
10 日期字符串
‘2004-10-9'
#2004-10-19#
‘2004-10-9'   GetDateStr
11 最大值加1
        GetNextNumStr
12 Like語句函數(shù) Like ‘101* Like ‘101%'
Like ‘101%'
  GetLikeStr
             

二、Access與SQLSERVER部分相同數(shù)據(jù)庫函數(shù)及關(guān)鍵字列表

1、 函數(shù)

序號
簡述  
01 記數(shù)函數(shù)
Count
02 最大值 Max
     

 

2、 關(guān)鍵字

序號
簡述  
01
Like
02 連接 Join
03 判斷空 Is Null
     

三、Access與語句SqlServer的語句語法區(qū)別 
1、 Inser Into …..Select …From 語句:
在ACCESS中以下語句 
Insert INTO 
PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) (Select 200201,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc Where PubSubJectAcc.co_type='03') 
中后面"(select 200201******.co_Type='03')"中的小括號("(",")")必須去掉才能執(zhí)行,如下: 
Insert INTO 
PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) Select 200201,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc Where PubSubJectAcc.co_type='03' 
在SQL SERVER 中都可以 
2、 Inner Join 語句1 

StrSql:='select a.user_id,a.user_opcode,b.copy_name from sysuser a inner join (syscopysuser c inner join syscopys b on c.copy_id=c.copy_id) on a.user_id=c.user_id where 
a.user_opcode=''' +EdtUserOpCode.text+''' And copy_name='''+Tmpcopyname +''''; 
應(yīng)該改為 
StrSql:='select a.user_id,a.user_opcode,b.copy_name from sysuser a inner join (syscopysuser c inner join syscopys b on c.copy_id=d.copy_id) on a.user_id=c.user_id where 
a.user_opcode=''' +EdtUserOpCode.text+''' And copy_name='''+Tmpcopyname +''''; 
該行代碼的檢索條件錯誤:應(yīng)該把C.copy_id=C.Copy_id 改為c.copy_id=d.copy_id 
注:兩種寫法都能在SQL-SERVER中運行,但c.copy_id=C.copy_id在ACCESS中不能運行 
3、 Inner Join 語句2 
StrSql:='select copy_year,copy_name,a.copy_id from SysCopys a inner join SysCopysUser b on a.curcopy_flag=1 and a.copy_id=b.copy_id where b.user_id=' + '''' +TmpPubUserID+ ''''; 
該為 
StrSql:='select copy_year,copy_name,a.copy_id from SysCopys a inner join SysCopysUser b on a.copy_id=b.copy_id where a.curcopy_flag=''1'' and b.user_id=' + '''' +TmpPubUserID+ ''''; 
注:兩種寫法都能在SQL-SERVER中運行,但第一種在ACCESS中不能運行 
4、 Inner Join語句3 

SQl server 中可以執(zhí)行以下語句 
'Select distinct sysoption.opti_id,sysoption.opti_name,sysoption.opti_code,sysroleoption.opti_sort From sysoption inner join sysroleoption ON sysoption.opti_id=sysroleoption.opti_id AND sysroleoption.role_id=:roleid' 
但ACCESS中不能,只能 
'Select distinct sysoption.opti_id,sysoption.opti_name,sysoption.opti_code,sysroleoption.opti_sort From sysoption inner join sysroleoption ON sysoption.opti_id=sysroleoption.opti_id Where sysroleoption.role_id=:roleid' 
5、 Update語句 

Sql SerVer 中能執(zhí)行但Access 中不能 
'Update sysuserrole SET sysuserrole.role_sort = (Select sysrole.role_sort FROM sysrole Where sysuserrole.role_id = sysrole.role_id and sysuserrole.user_id='01')' 
6、 日期比較 

SQL SERVER 中用 
StrSql:='select copy_year,Start_month,Cur_month,Start_Flag,Start_date,End_date ' 
+'From SysCopys ' 
+'where copy_id='''+LoginCopyID+''' ' 
+'and start_date<='''+datetostr(LoginDate)+''' ' 
+'and end_date>='''+datetostr(LoginDate)+''''; 
ACCESS中用 
StrSql:='select copy_year,Start_month,Cur_month,Start_Flag,Start_date,End_date ' 
+'From SysCopys ' 
+'where copy_id='''+LoginCopyID+''' ' 
+'and start_date<=#'+datetostr(LoginDate)+'# ' 
+'and end_date>=#'+datetostr(LoginDate)+'#' 
參考以上的第10個函數(shù)“GetDateStr” 
7、 最大數(shù)值獲取語句 
StrSql:='insert into sysRoleOption ' 
+'select '''+fidRoleId+''' as Role_ID,opti_id,' 
+'convert(numeric,opti_id)-(convert(numeric,opti_parentid)*100)+'+ MaxOptiSort 
+' as opti_Sort from sysoption where opti_parentid=''' 
+PCoTypeID(self.trvRoles.Selected.data)^.StrCoTypeID 
+''' and opti_bottom=''1'+''''; 
改為 
StrSql:='insert into sysRoleOption ' 
+'select '''+fidRoleId+''' as Role_ID,opti_id,' 
+'opti_id-opti_parentid*100+'+ MaxOptiSort 
+' as opti_sort from sysoption where opti_parentid=''' 
+PCoTypeID(self.trvRoles.Selected.data)^.StrCoTypeID 
+''' and opti_bottom=''1'+'''' 
注:兩種寫法都能在SQL-SERVER中運行,但第一種在ACCESS中不能運行 
但是考慮會出現(xiàn)Null值以及語句的通用性,可以使用以上的第07個函數(shù)“GetNullStr”和第09個函數(shù)“GetConvertStr”來完成字符串向數(shù)字,空值和0數(shù)字的轉(zhuǎn)換:參考GetNextNumStr代碼。

相關(guān)文章

  • 交互分布式系統(tǒng)下如何生成唯一序列

    交互分布式系統(tǒng)下如何生成唯一序列

    在分布式系統(tǒng)中,由于涉及到多個不同業(yè)務(wù)module的交互,以及高并發(fā)的場景。我們需要系統(tǒng)能夠生成一個跨業(yè)務(wù)module的全網(wǎng)唯一序列號,來保證我們業(yè)務(wù)操作的獨立性和唯一性
    2022-01-01
  • SQL語句中公共字段的自動填充方法

    SQL語句中公共字段的自動填充方法

    這篇文章主要給大家介紹了關(guān)于SQL語句中公共字段的自動填充方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • SQL注入詳解及防范方法

    SQL注入詳解及防范方法

    本文詳細(xì)講解了SQL注入及防范方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • OLEDB和ODBC的區(qū)別(優(yōu)缺點)

    OLEDB和ODBC的區(qū)別(優(yōu)缺點)

    ODBC是一種連接數(shù)據(jù)庫的開放標(biāo)準(zhǔn),OLEDB(對象鏈接和嵌入數(shù)據(jù)庫)位于ODBC層與應(yīng)用程序之間. 在你的ASP頁面里,ADO是位于OLEDB之上的應(yīng)用程序. 你的ADO調(diào)用先被送到OLEDB,然后再交由ODBC處理
    2012-09-09
  • RBAC簡介_動力節(jié)點Java學(xué)院整理

    RBAC簡介_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了RBAC簡介,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 你也許連刪庫跑路都不會(delete、drop和truncate刪除數(shù)據(jù))

    你也許連刪庫跑路都不會(delete、drop和truncate刪除數(shù)據(jù))

    這篇文章主要給大家介紹了關(guān)于delete、drop和truncate刪除數(shù)據(jù)的方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • Hbase列式存儲入門教程

    Hbase列式存儲入門教程

    HBase是一種分布式、可擴展、支持海量數(shù)據(jù)存儲的NoSQL數(shù)據(jù)庫。本文通過應(yīng)用場景,性質(zhì)特點給大家介紹Hbase列式存儲入門教程,感興趣的朋友一起看看吧
    2021-07-07
  • 一個查詢的SQL語句請教,希望能夠用一條SQL語句得到結(jié)果

    一個查詢的SQL語句請教,希望能夠用一條SQL語句得到結(jié)果

    一個查詢的SQL語句請教,希望能夠用一條SQL語句得到結(jié)果...
    2007-06-06
  • 深入解析NoSQL數(shù)據(jù)庫的分布式算法(圖文詳解)

    深入解析NoSQL數(shù)據(jù)庫的分布式算法(圖文詳解)

    這篇文章主要介紹了深入解析NoSQL數(shù)據(jù)庫的分布式算法,需要的朋友可以參考下
    2015-12-12
  • SQLServer與Oracle常用函數(shù)實例對比匯總

    SQLServer與Oracle常用函數(shù)實例對比匯總

    這篇文章主要介紹了SQLServer與Oracle常用函數(shù)對比,需要的朋友可以參考下
    2014-06-06

最新評論