Access 和 sql server 语法有什么区别?
日期分隔符
访问:井号 (#)
SQL Server:撇号 (')
布尔常量
访问:True、False ;开关;是,否;整数:-1(真)、0(假)。
SQL Server:整数:1(真)、0(假)
字符串连接
访问:与号 (&)
SQL Server:加号 (+)< /p>
通配符
访问:星号 (*) 匹配零个或多个字符。
问号 (?) 匹配单个字符。
感叹号(!)表示不在列表中。
井号 (#) 表示单个数字。
sql server:百分号 (%) 匹配零个或多个字符。
下划线(_)匹配单个字符。
插入符号 (^) 表示它不在列表中。
井号 (#) 没有对应的字符。
DROP INDEX
访问:删除索引 <索引名称> ON <表名称>
SQL 服务器:删除索引 <表名称>.<索引名称>
表添加标识列
访问:alter table <表名> add <列名> Counter(1,1)
SQL Server:alter table <表名> add <列名> bigint Identity(1 ,1) 不为空
1.差异化函数及解决方案
下面所示解决方案中的函数定义在untDataBase单元中的TAdoConn类的方法中。
否。 | 简要描述 | 访问语法 | SqlServer语法 | Oracle语法 | DB2语法 | 解决方案 | DB2语法 | 解决方案 | td>
01 | 系统时间 | 日期() | GETDATE() | SYSDATE | GetSysTimeStr | |||
02 | 连接字符串 | & | + | || | + | GetConcatStr | ||
03 | 截取字符串 | SubString | SubStr | SubString | SubString | GetSubStr | ||
04 | 小写字符串 | LCase | 下 | 下 | 下 | GetLowerStr | ||
05 | 大写字符串 | UCase | 大写 | 大写 < /td> | 上 | GetUpperStr | ||
06 | 查找字符串 | InStr | InStr | CharIndex | InStr | GetFindStr | ||
07 | 替换空值 | IIF+IsNull | 合并 | < td >Nvl合并 | GetNullStr | |||
08 | 条件值 | IIF | Case+When+Else | DeCode 或 Case | IIF td> | GetCaseStr | ||
09 | 字段类型转换 | Str, var,…. | 转换或转换 | To_Char,To_Number。 | GetConvertStr | GetConvertStr< /td> | ||
10 | 日期字符串 | '2004-10-9 ' | #2004-10-19# | '2004-10-9' | GetDateStr | |||
11 | 最大值加1 | GetNextNumStr | ||||||
12 | Like语句函数 | Like '101* | Like ' 101%' | GetLikeStr | ||||
< td> | < /td> |
2. Access和SQLSERVER之间一些相同的数据库函数和关键字列表
1.功能
串行编号 | 简要说明 | |
01 | 计数功能 | 计数 |
02 | 最大值 | 最大 |
td> |
2.关键字
序列号mber | 简要说明 | |
01 | 喜欢 | < /tr>|
02 | 连接 | 加入 | tr>
03 | 判决无效 | < td width="34%">为空|
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 ) (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 括号 ("(", “)”)in ******.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) Select 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. 内连接语句 1
StrSql:='select a.user_id,a.user_opcode,b.copy_name from sysuser a 内连接 (syscopysuser c 内连接 syscopys b on c.copy_id=c. copy_id) 在 a.user_id=c.user_id 上,其中
a.user_opcode=''' +EdtUserOpCode.text+''' 和 copy_name='''+Tmpcopyname +'''';
应更改
StrSql:='select a.user_id,a.user_opcode,b.copy_name from sysuser a 内部联接 (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 +'''';
搜索条件n 对于这行代码是错误的: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 and a.copy_id=b.copy_id where b.user_id=' + '' '' +TmpPubUserID+ '''';
这应该是
StrSql:='select copy_year,copy_name,a。 copy_id from SysCopys a 内部联接 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服务器中执行
'Select different 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 different P ;Pti_id, Sysoption.Opti_name, Sysoption.Opti_Code, SysroleOption.Opti_SORT FROM SYSOPTION Inner Join Sysoption.Opti_ id = sysroleoption.Opti_id where SysroleOption.role_id =: Roleid '
5、Update语句
可以在Sql SerVer中执行,但不能在Access中执行
'更新sysuserrole SET sysuserrole.role_sort =(从sysrole中选择sysrole.role_sort,其中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 '
+'其中 copy_id='''+LoginCopyID+''' '
+' 和 start_date<='''+datetostr(LoginDate)+''' '
+' 和 end_date>='''+datetostr (登录日期)+'''';
在ACCESS中使用
StrSql:='select copy_year,Start_month,Cur_month,Start_Flag ,Start_date,End_date '
+'来自SysCopys '
+'where copy_id='''+LoginCopyID+''' '
+'and start_date<=#'+datetostr(LoginDate)+ '# '
+'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 < br/>+''' 和 opti_bottom=''1'+'''';
更改为
StrSql:='插入sysRoleOption'
+'选择'''+fidRoleId+'''作为Role_ID,opti_id,'
+'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”来完成字符串到数字、空值的转换和0个数字:参考GetNextNumStr代码。
看完上面的内容,你是不是对Access和sql server语法的区别有了进一步的了解呢?如果您想了解更多知识或相关内容,请关注行业资讯频道。感谢您的支持。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > Access 和 sql server 语法有什么区别?