ADO如何建立修改除资料表呢?(BIG5)
可以使用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

%>

行後,使用AccessNtopSamp.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

%>

行後,使用AccessNtopSamp.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

%>