可以使用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
%>