Heim >Themen >Access >Syntaxvergleich zwischen Access und SQL Server

Syntaxvergleich zwischen Access und SQL Server

王林
王林nach vorne
2021-02-20 13:39:334201Durchsuche

Syntaxvergleich zwischen Access und SQL Server

Dieser Artikel fasst kurz die Syntaxunterschiede zwischen Access und SQL Server zusammen. Ich hoffe, dass er für alle hilfreich ist.

1. Differenzierte Funktionen und Lösungen

Die Funktionen in der unten gezeigten Lösung sind in der Methode der TAdoConn-Klasse in der Unit untDataBase definiert.

Syntaxvergleich zwischen Access und SQL Server

2. Teilweise identische Datenbankfunktionen und Schlüsselwortlisten zwischen Access und SQLSERVER

1. Funktionen

Syntaxvergleich zwischen Access und SQL Server

2. Der Unterschied in der Anweisungssyntax zwischen Access und SQLServer

1 , Einfügen in…..Select…From-Anweisung: Syntaxvergleich zwischen Access und SQL Server

Die folgende Anweisung in ACCESS

Einfügen INTO

PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) (S elect. 20 0201 , 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')

center "(select 200201******.co_Type='03')" Die Klammern („(“, „)“) in müssen vor der Ausführung wie folgt entfernt werden:

Insert INTO

PubSubJectAccCopys(Copy_id,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index) Auswählen 200201 ,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc Wobei PubSubJectAcc.co_type='03'

Alle in SQL SERVER verfügbar

2. Inner Join-Anweisung 1

StrS ql := ' Wählen Sie a.user_id,a.user_opcode,b.copy_name aus sysuser a inner join (syscopysuser c inner join syscopys b on c.copy_id=c.copy_id) auf a.user_id=c.user_id where

a.user_opcode=' ' ' +EdtUserOpCode.text+''' Und copy_name='''+Tmpcopyname +'''';

sollte geändert werden in

StrSql:='select a.user_id,a.user_opcode,b.copy_name from sysuser a innerer Join (syscopysuser c innerer Join syscopys b auf c.copy_id=d.copy_id) auf a.user_id=c.user_id, wobei

a.user_opcode=''' +EdtUserOpCode.text+''' und copy_name='''+ Tmpcopyname + '''';

Die Suchbedingung dieser Codezeile ist falsch: C.copy_id=C.Copy_id sollte in c.copy_id=d.copy_id geändert werden

Hinweis: Beide Schreibmethoden können in SQL ausgeführt werden -SERVER, aber c.copy_id=C.copy_id kann nicht in ACCESS

3 ausgeführt werden. Inner Join-Anweisung 2

StrSql:='select copy_year,copy_name,a.copy_id from SysCopys a inner joint SysCopysUser b on a.curcopy_flag=1 und a. copy_id=b.copy_id wobei b.user_id=' + '''' +TmpPubUserID+ '''';

sein sollte

StrSql:='select copy_year,copy_name,a.copy_id from SysCopys a inner joint SysCopysUser b auf a .copy_id=b.copy_id where a.curcopy_flag=''1'' and b.user_id=' + '''' +TmpPubUserID+ '''';

Hinweis: Beide Schreibmethoden können in SQL ausgeführt werden. SERVER, aber die erste kann nicht in ACCESS ausgeführt werden sysoption inner join sysroleoption ON sysoption.opti_id=sysroleoption.opti_id AND sysroleoption.role_id=:roleid'

Aber nicht in ACCESS, nur

'Wählen Sie eindeutige sysoption.opti_id,sysoption.opti_name,sysoption.opti_code,sysroleoption.opti_sort aus dem Sysop tion inner join sysroleoption ON sysoption.opti_id=sysroleoption.opti_id Where sysroleoption.role_id=:roleid'

5, Update-Anweisung kann in Sql SerVer, aber nicht in Access ausgeführt werden

'Update sysuserrole SET sysuserrole.role_sort = (Wählen Sie sysrole aus. role_sort FROM sysrole Wo sysuserrole.role_id = sysrole.role_id und sysuserrole.user_id='01')'

6. Datumsvergleich

Verwendet in 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+' und end_date> ;='''+datetostr(LoginDate)+'''';

Used in ACCESS

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)+ '# '

Siehe die 10. Funktion „GetDateStr“ oben

7. Maximalwerterfassungsanweisung

StrSql:='insert into sysRoleOption '

+'select '''+fidRoleId+''' as Role_ID,opti_id,'

+ 'convert(numeric,opti_id)-(convert(numeric,opti_parentid)*100)+'+ MaxOptiSort

+' als opti_Sort von sysoption where opti_parentid='''

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

+''' und opti_bottom=''1'+'''';

geändert in

StrSql:='insert into sysRoleOption '

+'select '''+fidRoleId+''' as Role_ID ,opti_id,'

+'opti_id-opti_parentid*100+'+ MaxOptiSort

+' als opti_sort von sysoption where opti_parentid='''

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

+ ''' und opti_bottom=''1'+''''

Hinweis: Beide Schreibmethoden können in SQL-SERVER ausgeführt werden, die erste kann jedoch nicht in ACCESS ausgeführt werden

Bedenken Sie jedoch, dass Nullwerte angezeigt werden Und für die Vielseitigkeit der Anweisung können Sie die 07. Funktion „GetNullStr“ und die 09. Funktion „GetConvertStr“ oben verwenden, um die Konvertierung von Zeichenfolgen in Zahlen, Nullwerte und 0-Zahlen abzuschließen: Weitere Informationen finden Sie im GetNextNumStr-Code.

1. Da kann in SQL nicht weggelassen werden
3 Es gibt keine Unterzeichenfolge, keine Umwandlung und keine anderen Funktionen
5 sind keine gespeicherten Prozeduren oder Trigger
6 ! = Ersetzen Sie durch
7. Fügen Sie in der SQL-Anweisung mit Parametern @ durch ?-Zeichen hinzu

Das obige ist der detaillierte Inhalt vonSyntaxvergleich zwischen Access und SQL Server. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen