ASP创建、删除数据库,新建数据表、字段,设置属性等
创建一张空表:
程序代码
Sql="Create TABLE [表名]"
创建一张有字段的表:
程序代码
Sql="Create TABLE [表名]([字段名1] MEMO NOT NULL, [字段名2] MEMO, [字段名3] COUNTER NOT NULL, [字段名4] DATETIME, [字段名5] TEXT(200), [字段名6] TEXT(200))
字段类型:
2 : "SmallInt", // 整型
3 : "Int", // 长整型
4 : "Real", // 单精度型
5 : "Float", // 双精度型
6 : "Money", // 货币
7 : "DateTime", // 日期时间
11 : "Bit", // 是否
13 : "TimeStamp",
17 : "TinyInt", // 字节
72 : "UniqueIdentifier", // 同步复制 ID
128 : "Binary",
129 : "Char",
130 : "NChar",
131 : "Decimal", // 小数
133 : "DateTime",
135 : "SmallDateTime",
200 : "VarChar",
201 : "Text",
202 : "VarChar", // 文本
203 : "Text", // 备注
204 : "Binary", // 二进制
205 : "Image" // OLE 对象
以下字段为无编码字段(NChar、NVarchar、NText型)
8,128,130,202,203,204,205
以下字段为按当前系统内码编码的字段(Asp中可用CodePage=936纠正为gb2312内码)
129,200,201
在现有的表中增加字段:
程序代码
Sql="alter table [表名] add column [字段名] varchar(200)"
修改字段类型:
程序代码
Sql="alter table [表名] Alter COLUMN 字段名] varchar(50)"
删除表:
程序代码
Sql="Drop table [表名]"
删除字段:
程序代码
sql="alter table [表名] drop [字段名]"
修改字段:
程序代码
Alter TABLE [表名] Alter COLUMN [字段名] 类型(大小) NULL
新建约束:
程序代码
Alter TABLE [表名] ADD CONSTRAINT 约束名 CHECK ([约束字段] <= 2007-1-1)
删除约束:
程序代码
Alter TABLE [表名] Drop CONSTRAINT 约束名
新建默认值:
程序代码
Alter TABLE [表名] ADD CONSTRAINT 默认值名 DEFAULT Gziu.CoM FOR [字段名]
删除默认值:
程序代码
Alter TABLE [表名] Drop CONSTRAINT 默认值名
=======================================
程序代码
conn.open connstr
sql="alter table [tablename] add hehe char(20)"
conn.execute(sql)
response.write("添加成功")
ACCESS新建数据库和表还不简单,有了表字段初始化就更简单
=======================================
程序代码
<%
session("tablen")="news"
news是已存在的表名
session("fieldsn")="c"
要添加的字段名
connectionstring="provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("data/qq.mdb")
set conn=server.createobject("adodb.connection")
conn.OPEN connectionstring
jhsql = " Alter Table "&session("tablen")&" add column "&session("fieldsn")&" real "
conn.execute(jhsql)
%>
================================
生成数据表,添加字段,其中id字段为自动增加,测试通过~~
程序代码
Sub GenAutoIncrementFld()
set cn=server.CreateObject("ADODB.Connection")
set clx=server.CreateObject("ADOX.Column")
set cat=server.CreateObject("ADOX.Catalog")
set tblnam=server.CreateObject("ADOX.Table")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\网站制作\asp操作mdb\db\test.mdb"
Set cat.ActiveConnection = cn
tblnam.Name = "Test"
clx.ParentCatalog = cat
clx.Type = 3
clx.Name = "Id"
clx.Properties("AutoIncrement") = true
tblnam.Columns.Append clx
tblnam.Columns.Append "DataField",130,20
cat.Tables.Append tblnam
Set clx = Nothing
Set cat = Nothing
cn.Close
Set cn = Nothing
End Sub
call GenAutoIncrementFld
===================================
字段类型对应数值
程序代码
---- DataTypeEnum Values ----
Const adEmpty = 0
Const adTinyInt = 16
Const adSmallInt = 2
Const adInteger = 3
Const adBigInt = 20
Const adUnsignedTinyInt = 17
Const adUnsignedSmallInt = 18
Const adUnsignedInt = 19
Const adUnsignedBigInt = 21
Const adSingle = 4
Const adDouble = 5
Const adCurrency = 6
Const adDecimal = 14
Const adNumeric = 131
Const adBoolean = 11
Const adError = 10
Const adUserDefined = 132
Const adVariant = 12
Const adIDispatch = 9
Const adIUnknown = 13
Const adGUID = 72
Const adDate = 7
Const adDBDate = 133
Const adDBTime = 134
Const adDBTimeStamp = 135
Const adBSTR = 8
Const adChar = 129
Const adVarChar = 200
Const adLongVarChar = 201
Const adWChar = 130
Const adVarWChar = 202
Const adLongVarWChar = 203
Const adBinary = 128
Const adVarBinary = 204
Const adLongVarBinary = 205
Const adChapter = 136
Const adFileTime = 64
Const adPropVariant = 138
Const adVarNumeric = 139
Const adArray = &H2000
在已有数据库中创建表
<% set conn=server.CreateObject("adodb.connection")
sql="provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("BOOK.mdb")
conn.open sql
Conn.Execute("create table bbb(id AUTOINCREMENT(1,1),p_id text(100),ee money,ff datetime default date(),gg guid,hh single default 50,ii double,jj smallint,kk long,ll image,mm memo,oo yesno not null,pp TINYINT,qq numeric(18,4),aa binary,bb bit,cc smallint,id int)")
%>
将a表另外复制一个b表(只复制结构,不含数据)
<%
Set rs= Server.CreateObject("ADODB.Recordset")
sql="select * into b from a where 1=0"
rs.open sql,conn,1,1
rs.update
rs.close
set rs=nothing
%>
将a表另外复制一个b表(包括制结构和数据)
<%
Set rs= Server.CreateObject("ADODB.Recordset")
sql="select * into b from a
rs.open sql,conn,1,1
rs.update
rs.close
set rs=nothing
%>
新建数据库并新建表
<%
首先建立一个数据库文件
set conn=server.createobject("adox.catalog")
conn.create "provider=microsoft.jet.oledb.4.0;"&"data source="&server.mappath("lifeda1.mdb")
%>
<%
向该数据库中建立相应表格
set rs=server.createobject("adox.table")
该表格名称
rs.name="aaaa"
该表格字段(字段类型见相关附录)
rs.columns.append "id" ,3
rs.columns.append "liuyan",203
rs.columns.append "dt",7
conn.tables.append rs
set rs=nothing
%>
字段类型备注:
203 备注
7 日期/时间
128 二进制
11 布尔
6 货币
133 日期
134 时间
135 日期时间
5 双精度
4 单精度
3 数字
204 二进制
202 字符串
定义“自动编号”的语法为:
CREATE TABLE board(ProblemID AUTOINCREMENT)
另一种示例:
sql="create table mytable (m_id integer identity(1,1) primary key,m_class varchar(50) not null default AAA,m_int integer not null,m_numeric NUMERIC(6,2),m_money money not null default 0.00,m_memo text,m_date date default date(),m_boolean bit default yes,m_blob OLEObject,m_double double,m_float real)"
说明
m_id integer identity(1,1) primary key自动编号字段并制作主键
m_class varchar(50) not null default AAA文本型,长度50,非空,默认值:AAA
m_int integer not null数字,长整型,非空
m_numeric NUMERIC(6,2)数字,小数,精度6,数值范围2
m_money money not null default 0.00货币,必添字段(非空),默认0
m_memo text备注
m_date date default date()日期/时间,默认当前日期(年月日)
表中的各种数据类型基本都有了
相关信息: