搜尋
首頁專題Accessaccess與sql server的語法對比

access與sql server的語法對比

Feb 20, 2021 pm 01:39 PM
accesssql server文法

access與sql server的語法對比

本文為大家簡單整理了access與sql server的文法區別,希望對大家有幫助。

一、有區別的函數及解決方案 

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

access與sql server的語法對比

二、Access與SQLSERVER部分相同資料庫函數及關鍵字清單

1、函數

access與sql server的語法對比

access與sql server的語法對比

2、關鍵字

三、Access與語句SqlServer的語句語法區別

1、 Inser Into …..Select …From 語句:

在ACCESS中以下語句

 Insert INTO

PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Proacc_type,Sub_name,acc_short,Acc_Comment,Acc_Proacc_type,Sub_name,flag_ 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')

11111150 月中>2000> 03')"中的小括號("(",")")必須去掉才能執行,如下:

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 Fcc_VubScc_Pro,accJ3,Sub_id_flag,中都可以

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 onuser a inner join (syscopysuser c inner join syscopys b onuser a inner join (syscopysuser c inner join syscopys b onuser a c .copy_id=c.copy_id) on a.user_id=c.user_id where

a.user_opcode=''' EdtUserOpCode.text ''' And copy_name=''' Tmpcopyname '''';

#應該改為

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 '''';

該行程式碼的檢索條件錯誤:應該把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 中可以執行以下語句

'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 sysleoption.

'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_leoption. #5、 Update語句

Sql SerVer 中能執行但Access 中不能

'Update sysuserrole SET sysuserrole.role_sort = (Select sysrole.role_sort FROM sysrole Where sysuser 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 '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) '#'###

參考以上的第10個函數「GetDateStr」

7、 最大數值取得語句

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_parent '''

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中不能運行

#但是考慮會出現Null值以及語句的通用性,可以使用以上的第07個函數「GetNullStr」和第09個函數「GetConvertStr」來完成字串向數字,空值和0數字的轉換:參考GetNextNumStr程式碼。

1、Sql中不能省略as ​​
2、一次只能執行一條Sql 
3、沒有substring、cast等函數 
4、sql中嚴格區分整形和字元型 
5、沒有預存程序、觸發器 
6、! = 替換為 
7、時間字串兩邊加#號
8、帶參數的sql語句中@用?號替換

##相關推薦:

access資料庫教程

以上是access與sql server的語法對比的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:博客园。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器