ホームページ  >  記事  >  トピック  >  AccessとSQL Serverの構文比較

AccessとSQL Serverの構文比較

王林
王林転載
2021-02-20 13:39:334133ブラウズ

AccessとSQL Serverの構文比較

この記事は、access と SQL Server の構文上の違いを簡単にまとめたものです。

1. 差別化された関数とソリューション

以下に示すソリューションの関数は、untDataBase ユニットの TAdoConn クラスのメソッドで定義されています。

AccessとSQL Serverの構文比較

# 2. Access と SQLSERVER で部分的に同じデータベース関数とキーワード リスト

#1. 関数

AccessとSQL Serverの構文比較

2. キーワード

AccessとSQL Serverの構文比較

3. Access とステートメント SqlServer のステートメント構文の違い

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) (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')

中後"(200201****** を選択)実行するには、次のように、.co_Type=' 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) PubSubJectAcc から 200201,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index を選択します。ここで、PubSubJectAcc.co_type='03'

SQL SERVER Medium ではすべて OK

2. 内部結合ステートメント 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 ) a.user_id=c.user_id where

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

を変更する必要があります

StrSql:='a.user_id=c の sysuser a 内部結合 (syscopysuser c 内部結合 syscopys b on c.copy_id=d.copy_id) から a.user_id、a.user_opcode、b.copy_name を選択します。 .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. 内部結合ステートメント 2

StrSql:='select copy_year,copy_name,a.copy_id from SysCopys a 内部結合 SysCopysUser b on a.curcopy_flag=1 および a.copy_id=b.copy_id ここでb.user_id=' '''' TmpPubUserID '''';

This is

StrSql:='SysCopys から copy_year,copy_name,a.copy_id を選択します a の内部結合 SysCopysUser b .copy_id=b.copy_id where a.curcopy_flag=''1'' and b.user_id=' '''' TmpPubUserID '''';

注: どちらの書き込み方法も SQL で実行できます。 SERVER ですが、最初のステートメントは ACCESS

4 では実行できません。内部結合ステートメント 3

次のステートメントは SQL サーバーで実行できます

'個別の sysoption.opti_id を選択してください。 sysoption.opti_name,sysoption.opti_code,sysroleoption.opti_sort sysoption 内部結合 sysroleoption ON sysoption.opti_id=sysroleoption.opti_id AND sysroleoption.role_id=:roleid'

ただし、ACCESS ではなく、

のみ'個別の sysoption.opti_id,sysoption.opti_name,sysoption.opti_code,sysroleoption.opti_sort から sysoption 内部結合 sysroleoption ON sysoption.opti_id=sysroleoption.opti_id Where sysroleoption.role_id=:roleid'

# #5. ステートメントを更新します

SQL Server では実行できますが、Access では実行できません

'Update sysuserrole SET sysuserrole.role_sort = (Select sysrole.role_sort FROM sysrole Where sysuserrole.role_id = sysrole.role_id および sysuserrole.user_id=' 01')'

6. 日付比較

SQL SERVERで使用

StrSql:='select copy_year,Start_month,Cur_month,Start_Flag,Start_date, End_date '

'SysCopys から '

'where copy_id=''' LoginCopyID ''' '

'および start_date

'and end_date>='' datetostr(LoginDate) '''';

ACCESS で使用

StrSql:='select copy_year,Start_month,Cur_month ,Start_Flag,Start_date, End_date '

'SysCopys から '

'where copy_id=''' LoginCopyID ''' '

'and start_date

'and end_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_parentid= ' ''

PCoTypeID(self.trvRoles.Selected.data)^.StrCoTypeID

''' および opti_bottom=''1' '''';

Change for

StrSql:='sysRoleOption に挿入 '

'Role_ID,opti_id,'

として ''' fidRoleId ''' を選択 'opti_id-opti_parentid*100 ' MaxOptiSort

' sysoption の opti_sort として、opti_parentid='''

PCoTypeID(self.trvRoles.Selected.data)^.StrCoTypeID

''' および opti_bottom='' 1 ' ''''

注: どちらの書き込みメソッドも SQL-SERVER で実行できますが、最初の書き込みメソッドは ACCESS

ただし、Null 値とステートメントが表示されることを考慮してください。汎用性を高めるために、上記の 07 番目の関数「GetNullStr」と 09 番目の関数「GetConvertStr」を使用して、文字列から数値、NULL 値、および 0 の数値への変換を完了できます。GetNextNumStr コードを参照してください。

1. SQL では As は省略できません
2. 一度に実行できる SQL は 1 つだけです
3. 部分文字列、キャスト、その他の関数はありません
4. を厳密に区別しますSQL の整数型と文字型
5. ストアド プロシージャやトリガーはありません
6.! = は に置き換えられます
7. 時刻文字列の両側に # 記号を追加します
8. パラメータを含む SQL ステートメントでは、@ を ? 記号に置き換えます

関連する推奨事項: アクセス データベース チュートリアル

以上がAccessとSQL Serverの構文比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。