Access和SQLServer虽然都是微软的产品,但它们在SQL语句的用法上是有一些差别的。用到Access时,要这么写;SQLServer则要那么写,确实有点烦。
本文将它们的共同点都给总结了出来,实际应用时只要遵照这一种写法就可以啦,再不用考虑它们之间的差别了。
新建数据表
新建数据表的SQL语句格式如下:
Create Table TableName(ColName Type, ColName Type, ColName Type……)
例如,创建一个名为“交费名录”的数据表,SQL语句如下图所示:
创建数据表时,还可对指定列设置以下属性:
primary key:设为主键列。
identity:设为自动编号列。它有两个可选参数:第一个参数表示开始编号的值,第二个参数表示自增步长。例如,identity(3,5)就表示从3开始编号,步长为5。默认为从1开始编号,每次增加1。
not null:不允许为空值(默认为null)。
default:默认值。
例如,以下SQL语句将创建新表“test”,共包含5列:
create table test(id int identity primary key,姓名 nvarchar(6) not null,性别 bit,出生日期 datetime,交费金额 numeric(5,2))
其中,“id”列的数据类型为int,同时还设置为自增型的主键(当指定identity自增属性时,Access数据源可以省略列类型,SQLServer则不能省略);“姓名”列不允许为空。
修改数据表
对于数据源中的现成表,可使用alter table语句对其结构进行修改。关于表结构修改,主要包括以下三个方面:
【修改列】例如,将test表中的“姓名”列长度改为10,同时允许空值:
alter table test alter column 姓名 nvarchar(10) null
【增加列】例如,在test表中增加“交费日期”列:
alter table test add 交费日期 datetime
【删除列】例如,删除test表中的“交费日期”列:
alter table test drop column 交费日期
删除数据表
例如,将新增的test表删除:
drop table test
重命名表
Access和SQLServer都没有可以直接重命名表的SQL语句,一般都是采取建新表、删旧表的方式解决。不过,SQLServer数据库内置了一个SP_RENAME的存储过程,通过执行此存储过程可实现重命名表的目的。例如,将表“交费名录”改名为英文的“jfml”:
以上就是在Access和SQLServer数据库中使用SQL语句操作数据表的最常见用法,同样的代码在两种数据库中全部运行通过!exec sp_rename '交费名录','jfml'