이 글은 access와 SQL Server의 구문 차이점을 간략하게 요약한 것입니다. 모든 사람에게 도움이 되기를 바랍니다.
1. 차별화된 기능과 솔루션
아래 솔루션의 기능은 untDataBase 유닛의 TAdoConn 클래스의 메소드에 정의되어 있습니다.
2. Access와 SQLSERVER의 데이터베이스 함수 및 키워드 목록이 부분적으로 동일함
1. 함수
2. 키워드
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) (S 선택 20020 1 , Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc 여기서 PubSubJectAcc.co_type='03')
center "(선택 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) 선택 200201 ,Acc_id,Acc_Pid,Acc_name,acc_short,Acc_Comment,Acc_Pro,acc_type,Sub_id_flag,acc_index FROM PubSubJectAcc 여기서 PubSubJectAcc.co_type='03'
모두 SQL SERVER
2에서 사용할 수 있습니다. SQL:= ' a.user_id=c.user_id에서 sysuser a 내부 조인(syscopysuser c 내부 조인 syscopys b on c.copy_id=c.copy_id)에서 a.user_id,a.user_opcode,b.copy_name을 선택합니다. 여기서
a.user_opcode=' ' ' +EdtUserOpCode.text+''' 그리고 copy_name='''+Tmpcopyname +'''';
는 sysuser a에서
StrSql:='select a.user_id,a.user_opcode,b.copy_name으로 변경되어야 합니다. 내부 조인(syscopysuser c 내부 조인 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에서 실행할 수 없습니다. 내부 조인 문 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+ '''';
는
StrSql:='SysCopys에서 copy_year,copy_name,a.copy_id를 선택하고 SysCopysUser를 사용합니다. b on a .copy_id=b.copy_id 여기서 a.curcopy_flag=''1'' 및 b.user_id=' + '''' +TmpPubUserID+ '''';
참고: 두 쓰기 방법 모두 SQL에서 실행할 수 있습니다. SERVER, 하지만 첫 번째는 ACCESS
4에서 실행할 수 없습니다. Inner Join 문 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 선택 sysop에서 내부 조인 sysroleoption ON sysoption.opti_id=sysroleoption.opti_id sysroleoption.role_id=:roleid'
5인 경우 업데이트 문은 SQL Server에서는 실행할 수 있지만 Access에서는 실행할 수 없습니다
'Update sysuserrole SET sysuserrole.role_sort = (sysrole을 선택하세요. role_sort FROM sysrole 여기서 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 '
+'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 '
+'SysCopys에서 '
+ '여기서 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,'
+ opti_parentid='''
+PCoTypeID(self.trvRoles.Selected.data) ^ .StrCoTypeID
+''' 및 opti_bottom=''1'+'''';
이
StrSql:='로 변경됨 sysRoleOption에 삽입 '
+''''+fidRoleId+'''를 Role_ID로 선택 ,opti_id,'
+'opti_id-opti_parentid*100+'+ MaxOptiSort
+' opti_parentid='''
+PCoTypeID(self.trvRoles.Selected.data)^.StrCoTypeID
+ ''' 및 opti_bottom=''1'+''''
참고: 두 가지 쓰기 방법 모두 SQL-SERVER에서 실행할 수 있지만 첫 번째 방법은 ACCESS에서 실행할 수 없습니다
그러나 Null 값이 나타날 것이라는 점을 고려하세요. 문의 다양성을 위해 위의 07번째 함수 "GetNullStr"과 09번째 함수 "GetConvertStr"을 사용하여 문자열을 숫자, null 값 및 0 숫자로 변환할 수 있습니다. GetNextNumStr 코드를 참조하세요.
1. SQL에서는 생략할 수 없습니다.
2. 한 번에 하나의 SQL만 실행할 수 있습니다.3. SQL에서는 정수와 문자 유형이 엄격하게 구분됩니다. 저장 프로시저나 트리거가 없습니다
6. = 로 대체합니다. 7. 시간 문자열 양쪽에 # 기호를 추가합니다
8. 매개변수가 있는 SQL 문에서 @를 ? 기호로 대체합니다.
관련 권장 사항:
액세스 데이터베이스 튜토리얼
위 내용은 액세스와 SQL Server의 구문 비교의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!