可以使用ASP於程式?中直接建立修改?除?料表呢?
??料表有?的SQL?法如下:
建立一??料表:CREATE TABLE?述式。
修改一??料表:ALTER TABLE?述式。
?除一??料表:DROP TABLE?述式。
建立一?索引:使用CREATE INDEX 或 ALTER TABLE?述式。
?除一?索引:DROP INDEX?述式。
??介?如下:
CREATE TABLE?述式
CREATE TABLE?述式,建立一?新的?料表。
?法如下:
CREATE TABLE 新?料表(新?位名?1 ?位?型 [(?度)] [NOT NULL] [索引1] [,新?位名?2 ?位?型 [(?度)] [NOT NULL] [索引2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])
?度?文字及二位元?位的字元大小。
索引1, 索引2 CONSTRAINT子句定??一?位索引。
multifieldindex定?一多重?位索引。
使用CREATE TABLE?述式,如果?一?位指定?NOT NULL,?在此?位中新增的???料?容必?是有效的?料。
CONSTRAINT子句可在一?位上建立不同的限制,?且也可以用?建立主索引。
您可以使用CREATE INDEX?述式,在?有的?料表上建立一?主索引或多?索引。
?我?看一?於ASP程式??中使用??SQL指令的例子。
譬如ASP程式?rs61.asp如下,[CREATE TABLE ?? (姓名 TEXT(10), 年? INT)] 先建立一???的?料表,包括10?位元?度TEXT?型的姓名?位,和整??型的年??位:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
sql = "CREATE TABLE ?? (姓名 TEXT(10), 年? INT)"
Set a = conn1.Execute(sql)
Response.Write "CREATE TABLE OK<p>"
conn1.Close
%>
?行後,使用Access??NtopSamp.mdb?案?,可看到新建立一???的?料表。
ALTER TABLE?述式
ALTER TABLE?述式,修改已建立好的?料表。
?法如下:
ALTER TABLE ?料表 {ADD {COLUMN ?位名? ?位?型[(?度)] [NOT NULL] [CONSTRAINT 索引] |
CONSTRAINT multifieldindex} |
DROP {COLUMN ?位名? I CONSTRAINT 多重?位索引名?} }
使用ALTER TABLE?述式,您可以利用多?不同方法,?更目前已存在的?料表:
使用ADD COLUMN新增?位到?料表。
使用DROP COLUMN?除一?位。只需指定欲?除之?位名?即可。
使用ADD CONSTRAINT新增多重?位索引。
使用DROP CONSTRAINT?除多重?位索引。只需指定?接在CONSTRAINT之後的索引名?即可。
使用ADD COLUMN新增?位到?料表?,必?指定?位名?、?料?型、以及文字和二位元?位的?度。例如,下例增加一?2?字元,名?性?的文字?位至???料表:
ALTER TABLE ?? ADD COLUMN 性? TEXT(2)
您也可以?此?位定?索引。
如果您?一?位指定 NOT NULL,?於此?位中所新增的???料必?是有效的?料。
您不能同?新增或?除多??位或索引。
譬如ASP程式?rs63.asp如下,[CREATE TABLE ??1 (姓名 TEXT(10), 年? INT)] 先建立一???1的?料表,然後使用 [ALTER TABLE ??1 ADD COLUMN 性? TEXT(2)] 增加一?2?字元,名?性?的文字?位至??1?料表:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
sql = "CREATE TABLE ??1 (姓名 TEXT(10), 年? INT)"
Set a = conn1.Execute(sql)
Response.Write "CREATE TABLE OK<p>"
sql = "ALTER TABLE ??1 ADD COLUMN 性? TEXT(2)"
Set a = conn1.Execute(sql)
Response.Write "ALTER TABLE OK<p>"
conn1.Close
%>
?行後,使用Access??NtopSamp.mdb?案?,可看到?料表??1新建立一?姓?的?位。
DROP?述式
DROP?述式?一??料?中?除一?已存在的?料表,或?一??料表中?除一?已存在的索引。
?法如下:
DROP {TABLE ?料表 | INDEX 索引 ON ?料表}
?料表必?先??,才能?除此?料表或由此?料表中的索引。
若要?除索引,除了使用DROP INDEX 索引 ON ?料表,也可以使用ALTER TABLE。
譬如ASP程式?rs62.asp如下,首先使用 [CREATE TABLE ??2 (姓名 TEXT(10), 年? INT)] 先建立一???2的?料表,包括10?位元?度TEXT?型的姓名?位,和整??型的年??位,然後使用 [DROP TABLE ??2] ?除??2的?料表:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("ntopsamp.mdb") &";Driver={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;"
sql = "CREATE TABLE ??2 (姓名 TEXT(10), 年? INT)"
Set a = conn1.Execute(sql)
Response.Write "CREATE TABLE OK<p>"
sql = "DROP TABLE ??2"
Set a = conn1.Execute(sql)
Response.Write "DROP TABLE OK<p>"
conn1.Close
%>