ADO如何建立修改刪除资料表呢?(BIG5)

网络整理 - 09-11
可以使用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

%>