
share- —
- Unknown
share is currently Browsing Computerlove
Full Name:
Born:
December 31, 1969Job:
NoneWebsite
NoneStatus:
UnknownJune 01, 2006 Last login on:
June 01, 2006
Blog
|
1 posts | Alert me on update |
Get RSS
June 1st, 2006
MS Jet SQL for Access 2000ä¸çº§ç¯‡
作者:佚å
æ¥æºï¼šè®ºå›è½¬è½½æ— 法确定出处,如有版æƒé—®é¢˜è¯·ä¸Žæˆ‘们è”ç³»
è¯¥ç³»åˆ—çš„æ–‡ç« è§£é‡Šäº†ä»€ä¹ˆæ˜¯Microsoft? Jet SQL,并说明了它如何在Access 2000的应用程åºä¸ä½¿ç”¨ã€‚本文是基础ã€ä¸çº§å’Œé«˜çº§ä¸‰ç¯‡ä¸çš„ç¬¬äºŒç¯‡ã€‚è¿™äº›æ–‡ç« å¾ªåºæ¸è¿›çš„说明了使用Jet SQLçš„è¯æ³•和一些方法,并示范了对于Access 2000æ¥è¯´è¾ƒæ–°çš„Jet SQL的特å¾ã€‚最åŽï¼Œæœ¬æ–‡çš„æ‰€æœ‰SQLå‚考都是针对Microsoft Jet 4.0 æ•°æ®å¼•擎所用的。
ä¸çº§SQL说明
通过了解ä¸çº§ç»“构化查询è¯è¨€çš„一些概念,用户å¯ä»¥å¢žå¼ºæŽ§åˆ¶æ•°æ®åº“的结构和对象的能力,并且å¯ä»¥é€šè¿‡è®¸å¤šæœ‰è¶£çš„和强有力的途径æ“纵这些机构ä¸åŒ…å«çš„æ•°æ®ã€‚结åˆä½¿ç”¨è¯¸å¦‚DAOå’ŒADO之类的数æ®è®¿é—®æ–¹æ³•,ä¸çº§SQL å¯ä»¥å¾ˆå¤§ç¨‹åº¦çš„æé«˜ç”¨æˆ·åº”用程åºçš„çµæ´»æ€§åŠå…¶è¡¨çŽ°ã€‚
基础ã€ä¸çº§å’Œé«˜çº§SQLçš„ä¸åŒç‚¹
在基础ã€ä¸çº§å’Œé«˜çº§SQLä¹‹é—´åˆ’åˆ†ä¸€æ¡æ˜Žæ˜¾çš„界é™å¹¶ä¸æ˜¯ä¸€ä»¶å®¹æ˜“çš„äº‹æƒ…ï¼Œåœ¨å¾ˆå¤šæƒ…å†µä¸‹ï¼Œå†³å®šå…¶æ‰€å±žéƒ½åªæ˜¯ç®€å•的决æ–。但是对于该系列在Access 2000ä¸ä½¿ç”¨SQLçš„æ–‡ç« æ¥è¯´ï¼Œè¿˜è€ƒè™‘了如下的一些方é¢ï¼š
首先一点在于SQLè¯å¥æœ¬èº«çš„夿‚级别。在å‰é¢çš„æ–‡ç« ä¸ï¼Œæˆ‘们努力使用那些常用的è¯å¥ï¼Œè€Œä¸”是最简å•的形å¼ã€‚本文则在å‰é¢åŸºç¡€ç¯‡çš„基础上介ç»äº†æ›´å¤æ‚çš„è¯å¥ã€‚
其次是在Access 2000ä¸å·²ç»åŒ…å«äº†ä¸€äº›æ–°çš„SQLè¯å¥ã€åå¥å’Œå…³é”®è¯ã€‚尽管在本文ä¸ä»å°†ä½¿ç”¨Accessä¸Šä¸€ç‰ˆæœ¬ä¸æ‰€åŒ…å«çš„SQLè¯å¥ï¼Œä½†æ˜¯ä¸€å®šä¼šå‡ºçŽ°ä¸€äº›åœ¨Accessä¸ç¬¬ä¸€æ¬¡å‡ºçŽ°çš„SQLè¯å¥ï¼Œåœ¨é«˜çº§SQL一文ä¸ä¹Ÿæ˜¯å¦‚æ¤ã€‚
最åŽï¼Œé‚£äº›å…³äºŽå®‰å…¨æ€§å’Œå¤šç”¨æˆ·è§£å†³æ–¹æ¡ˆçš„SQLè¯å¥å°†åœ¨é«˜çº§ç¯‡ä¸ä»‹ç»ï¼Œå› 为这些è¯å¥å¸¸å¸¸æ˜¯ç”¨äºŽæ›´å¤æ‚的应用程åºä¸çš„
通过使用ä¸çº§SQL,用户å¯ä»¥ä¸ºä½ çš„Access应用程åºå¢žåŠ æ›´å¼ºçš„çµæ´»æ€§å’Œèƒ½åŠ›ã€‚å°½ç®¡ç®€å•的和直接的SQLè¯å¥èƒ½å¤Ÿå®Œæˆå¾ˆå¤šçš„äº‹æƒ…ï¼Œä½†æ˜¯ä½¿ç”¨æ›´å¤æ‚çš„è¯å¥å°†æ‰©å±•在数æ®åº“ä¸è®¿é—®å’Œå¤„ç†ä¿¡æ¯çš„æ–¹æ³•范围。使用ä¸çº§SQL也将使得用户å¯ä»¥æ›´å¥½çš„æŽ§åˆ¶ä½ 的数æ®åº“使用和维护工作
增强SQL
在Access 2000ä¸ï¼Œä¸ºäº†æ”¯æŒAccess的新特性,为了和ANSI-92çš„æ ‡å‡†æ›´åŠ ä¸€è‡´ï¼Œå¹¶ä¸”å…许在Access å’Œ Microsoft? SQL Server?间的更好的兼容性,包å«åœ¨Microsoft Jet 4.0æ•°æ®å¼•擎ä¸çš„SQL作了许多增强。Jetæ•°æ®å¼•æ“ŽçŽ°åœ¨æœ‰ä¸¤ç§æ ¼å¼çš„SQLè¯æ³•ï¼šä¸€ç§æ˜¯æ”¯æŒä»¥å‰ä½¿ç”¨çš„SQLè¯æ³•,å¦ä¸€ç§æ˜¯æ”¯æŒæ–°çš„SQLè¯æ³•è§„èŒƒã€‚éœ€è¦æ ¼å¤–注æ„çš„æ˜¯ï¼Œåªæœ‰åœ¨ç”¨æˆ·ä½¿ç”¨ActiveX? Data Objects (ADO)å’ŒJet OLE DB provideræ—¶æ–°çš„è¯æ³•æ‰æ˜¯å¯ç”¨çš„,而当å‰é€šè¿‡Access SQL ViewæŽ¥å£æˆ–者DAOæ˜¯æ— æ³•ä½¿ç”¨æ–°çš„è¯æ³•çš„ã€‚æœ¬æ–‡æŒ‡å‡ºåªæœ‰é€šè¿‡Jet OLE DB provider å’Œ ADOæ‰èƒ½å¤Ÿä½¿ç”¨æŸä¸ªç‰¹å®šçš„SQL命令。
在Access的上一版本ä¸ï¼Œæ•°æ®è®¿é—®å¯¹è±¡(DAO)是主è¦çš„æ•°æ®è®¿é—®æ–¹æ³•。而现在å‘生了改å˜ï¼Œå°½ç®¡DAO 仿—§è¢«æ”¯æŒï¼Œä½†æ–°çš„æ•°æ®è®¿é—®æ–¹æ³•是使用ADO。ADO是微软的通用数æ®è®¿é—®æˆ˜ç•¥ï¼ˆMicrosoft's Universal Data Access strategy)的一部分,其最基本的å‡è®¾æ˜¯æ— 论数æ®å˜åœ¨é‚£é‡Œéƒ½æ˜¯å¯ä»¥è®¿é—®çš„,ä¸ç®¡æ˜¯æ•°æ®åº“ã€ç›®å½•结构还是æŸé‡ç”¨æˆ·è‡ªå®šä¹‰çš„æ•°æ®åº“。
在讨论Microsoft Jet SQL 时,ADO是éžå¸¸é‡è¦çš„,æ£å¦‚在å‰é¢æåˆ°çš„,一些新的SQLè¯å¥åªæœ‰åœ¨ä½¿ç”¨ADO å’ŒJet OLE DB provideræ—¶æ‰æ˜¯å¯ç”¨çš„。在本文和与本文相é…套的示范数æ®åº“ä¸ï¼Œæ‰€æœ‰çš„代ç 都是使用ADOäº›çš„ã€‚é‚£äº›æ²¡æœ‰ç‰¹æ„æŒ‡æ˜Žä¸ºåªæœ‰é€šè¿‡ADOæ‰å¯ç”¨çš„SQLè¯å¥éƒ½å¯ä»¥é€šè¿‡Access SQL View ç”¨æˆ·æŽ¥å£æˆ– DAOæ¥æ‰§è¡Œã€‚详尽的关于ADO的讨论超出了本文的范围,用户å¯ä»¥åœ¨ä¸‹é¢çš„ç½‘ç«™ä¸æ‰¾åˆ°æœ€è¿‘çš„ä¿¡æ¯ www.microsoft.com/data/ado
SQL代ç 规范
本文使用一致性的SQL代ç 规范。与所有的代ç 规范相åŒï¼Œç›®çš„æ˜¯ä½¿ç”¨æ˜“读和易于ç†è§£çš„æ–¹å¼æ¥æ˜¾ç¤ºä»£ç 。这就è¦é€šè¿‡ç©ºæ ¼ã€æ¢è¡Œå’Œå¤§å†™å…³é”®å—的结åˆä½¿ç”¨æ¥å®žçŽ°ã€‚é€šå¸¸æ¥è¯´ï¼Œè¦ä½¿ç”¨å¤§å†™å—æ¯æ¥æ‰“å°SQL的关键å—,如果SQLè¯å¥å¿…é¡»æ¢è¡Œï¼Œå°½é‡ä½¿SQLè¯å¥çš„主è¦éƒ¨åˆ†ä¸€èµ·æ¢è¡Œã€‚看过一些例å之åŽï¼Œç›¸ä¿¡è¯»è€…ä¼šå¯¹æ¤æœ‰è¾ƒå¥½çš„æ„Ÿè§‰ã€‚
ä¸åˆæ ¼å¼çš„SQL代ç
CREATE TABLE tblCustomers (CustomerID INTEGER NOT NULL, [Last Name] TEXT(50) NOT NULL, [First Name] TEXT(50) NOT NULL, Phone TEXT(10), Email TEXT(50))
è‰¯å¥½æ ¼å¼çš„SQL代ç
CREATE TABLE tblCustomers (
...CustomerID INTEGER NOT NULL,
...[Last Name] TEXT(5) NOT NULL,
...[First Name] TEXT(50) NOT NULL,
...Phone TEXT(10),
...Email TEXT(50))
æ”¹å˜æ•°æ®è¡¨
在建立或倒入一个数æ®è¡¨ä¹‹åŽï¼Œç”¨æˆ·å¯èƒ½éœ€è¦ä¿®æ”¹è¡¨çš„设计。这时就å¯ä»¥ä½¿ç”¨ALTER TABLEè¯å¥ã€‚但是注æ„,改å˜çްå˜çš„表的结构å¯èƒ½ä¼šå¯¼è‡´ç”¨æˆ·ä¸¢å¤±ä¸€äº›æ•°æ®ã€‚比如,改å˜ä¸€ä¸ªåŸŸçš„æ•°æ®ç±»åž‹å°†å¯¼è‡´æ•°æ®ä¸¢å¤±æˆ–èˆå…¥é”™è¯¯ï¼Œè¿™å–决于用户现在使用的数æ®ç±»åž‹ã€‚æ”¹å˜æ•°æ®è¡¨ä¹Ÿå¯èƒ½ä¼šç ´å用户的应用程åºä¸æ¶‰åŠåˆ°æ‰€æ”¹å˜çš„域的部分。所以用户在修改现有表的结构之å‰ä¸€å®šè¦æ ¼å¤–å°å¿ƒã€‚
使用ALTER TABLE è¯å¥ï¼Œç”¨æˆ·å¯ä»¥å¢žåŠ ï¼Œåˆ é™¤æˆ–æ”¹å˜åˆ—或域,也å¯ä»¥å¢žåŠ æˆ–åˆ é™¤ä¸€ä¸ªçº¦æŸã€‚还å¯ä»¥ä¸ºæŸä¸ªåŸŸè®¾å®šç¼ºçœå€¼ï¼Œä½†æ˜¯ä¸€æ¬¡åªèƒ½ä¿®æ”¹ä¸€ä¸ªåŸŸã€‚å‡è®¾æˆ‘们有一个记账å•的数æ®åº“,而我们想在顾客数æ®è¡¨ä¸å¢žåŠ ä¸€ä¸ªåŸŸï¼Œè¿™æ—¶å¯ä»¥ä½¿ç”¨ALTER TABLE è¯å¥ï¼Œåœ¨å…¶ADD COLUMN åå¥åŽå†™ä¸ŠåŸŸçš„åç§°ã€æ•°æ®ç±»åž‹å’Œæ•°æ®çš„大å°ï¼ˆå¦‚果需è¦çš„è¯ï¼‰ã€‚
ALTER TABLE tblCustomers
ADD COLUMN Address TEXT(30)
è¦æ”¹å˜åŸŸçš„æ•°æ®ç±»åž‹æˆ–大å°ï¼Œå¯ä»¥ä½¿ç”¨ALTER COLUMNåå¥ï¼Œåœ¨åŽé¢åŠ ä¸ŠæœŸæœ›çš„æ•°æ®ç±»åž‹å’Œæ•°æ®çš„大å°ã€‚
ALTER TABLE tblCustomers
ALTER COLUMN Address TEXT(40)
å¦‚æžœéœ€è¦æ”¹å˜åŸŸçš„åç§°ï¼Œåˆ™å¿…é¡»åˆ é™¤è¯¥åŸŸå¹¶é‡æ–°åˆ›å»ºã€‚åˆ é™¤ä¸€ä¸ªåŸŸè¦ä½¿ç”¨DROP COLUMN åå¥ï¼Œåœ¨å…¶åŽè·Ÿä¸ŠåŸŸçš„å称。
ALTER TABLE tblCustomers
DROP COLUMN Address
注æ„ä½¿ç”¨è¿™ç§æ–¹æ³•å°†ä¼šåˆ é™¤è¯¥åŸŸçš„çŽ°å˜æ•°æ®ã€‚如果需è¦ä¿å˜è¿™äº›æ•°æ®ï¼Œåˆ™ç”¨æˆ·éœ€è¦åœ¨Access的用户界é¢çš„设计模å¼ä¸æ”¹å˜è¯¥åŸŸçš„å称,或者编写代ç 将现å˜çš„æ•°æ®ä¿å˜åœ¨ä¸€ä¸ªä¸´æ—¶çš„表ä¸ç„¶åŽå°†å…¶æ·»åŠ åˆ°æ”¹ååŽçš„表ä¸ã€‚
缺çœå€¼æ˜¯æŒ‡åœ¨è¡¨ä¸å¢žåŠ æ–°çºªå½•å¹¶ä¸”æ²¡æœ‰ä¸ºè¯¥åˆ—èµ‹å€¼æ—¶è‡ªåŠ¨å¡«å……åˆ°è¯¥åŸŸä¸çš„值。为æŸåŸŸè®¾ç½®ç¼ºçœå€¼ï¼Œè¦åœ¨å®šä¹‰åŸŸçš„类型åŽä½¿ç”¨ä½¿ç”¨DEFAULT关键å—,ä¸ç®¡æ˜¯ä½¿ç”¨ADD COLUMN或 ALTER COLUMN åå¥ã€‚
ALTER TABLE tblCustomers
ALTER COLUMN Address TEXT(40) DEFAULT Unknown
注æ„缺çœå€¼å¹¶ä¸ä½¿ç”¨å•引å·åŒ…å«ï¼Œå¦‚果用了å•引å·ï¼Œåˆ™å¼•å·ä¹Ÿä¼šæ’入到记录ä¸ã€‚在CREATE TABLEè¯å¥ä¸ä¹Ÿå¯ä»¥ä½¿ç”¨DEFAULT关键å—。
CREATE TABLE tblCustomers (
CustomerID INTEGER CONSTRAINT PK_tblCustomers
PRIMARY KEY,
[Last Name] TEXT(50) NOT NULL,
[First Name] TEXT(50) NOT NULL,
Phone TEXT(10),
Email TEXT(50),
Address TEXT(40) DEFAULT Unknown)
注æ„: DEFAULT è¯å¥åªæœ‰åœ¨Jet OLE DB providerå’ŒADOä¸å¯ä»¥æ‰§è¡Œï¼Œåœ¨Access SQL View的用户界é¢ä¸ä½¿ç”¨å°†ä¼šè¿”回错误信æ¯ã€‚
下é¢çš„部分将讨论如何在ALTER TABLEè¯å¥ä¸ä½¿ç”¨çº¦æŸã€‚è¦èŽ·å¾—æ›´è¯¦ç»†çš„æœ‰å…³ALTER TABLE的说明,请在Office åŠ©æ‰‹ä¸æˆ–在Microsoft Access 帮助的回ç”å‘å¯¼çš„æ ‡ç¾é¡µä¸è¾“å…¥ALTER TABLE ,然åŽå•击查找。
约æŸ
在《Access 2000的基础Microsoft Jet SQL》一文ä¸ï¼Œæˆ‘们讨论了建立表之间的è”ç³»çš„çº¦æŸæ–¹æ³•。约æŸä¹Ÿèƒ½ç”¨äºŽå»ºç«‹ä¸»é”®å’Œå‚考完整性,æ¥é™åˆ¶æ’入到一个域ä¸çš„æ•°æ®å€¼ã€‚通常,约æŸå¯ä»¥ç”¨äºŽä¿æŒç”¨æˆ·æ•°æ®åº“ä¸çš„æ•°æ®å®Œæ•´æ€§å’Œä¸€è‡´æ€§ã€‚
共有两ç§ç±»åž‹çš„约æŸï¼šå•æ•°æ®åŸŸï¼ˆæˆ–称域级的)的约æŸå’Œå¤šæ•°æ®åŸŸï¼ˆæˆ–称表级的)的约æŸã€‚两ç§çº¦æŸéƒ½å¯ä»¥ç”¨åœ¨CREATE TABLE 或 ALTER TABLE è¯å¥ä¸ã€‚
å•域的约æŸï¼Œä¹Ÿå°±æ˜¯é€šå¸¸æ‰€è¯´çš„列级的约æŸï¼Œæ˜¯åœ¨åŸŸåŠå…¶æ•°æ®ç±»åž‹å®šä¹‰åŽé’ˆå¯¹è¯¥åŸŸå®šä¹‰çš„ã€‚ä¸‹é¢æˆ‘们使用用户表,在CustomerID域生æˆä¸€ä¸ªå•åŸŸçš„ä¸»é”®ã€‚å¢žåŠ çº¦æŸæ—¶ï¼Œåœ¨åŸŸååŽä½¿ç”¨CONSTRAINT关键å—。
ALTER TABLE tblCustomers
ALTER COLUMN CustomerID INTEGER
CONSTRAINT PK_tblCustomers PRIMARY KEY
注æ„这里给出了约æŸçš„å称。用户还å¯ä»¥åœ¨å®šä¹‰ä¸»é”®æ—¶ä½¿ç”¨ç®€ç§°è€Œçœç•¥CONSTRAINTåå¥ã€‚
ALTER TABLE tblCustomers
ALTER COLUMN CustomerID INTEGER PRIMARY KEY
然而,使用简称的方法将导致Accesséšæœºçš„生æˆçº¦æŸçš„å称,从而使得在代ç ä¸éš¾ä»¥å¼•用。所以,最好给约æŸåˆ¶å®šå称。
è¦åˆ 除一个约æŸï¼Œå¯ä»¥åœ¨ALTER TABLE è¯å¥ä¸ä½¿ç”¨DROP CONSTRAINT åå¥ï¼Œå¹¶ç»™å‡ºçº¦æŸçš„å称。
ALTER TABLE tblCustomers
DROP CONSTRAINT PK_tblCustomers
约æŸè¿˜å¯ä»¥ç”¨æ¥ç»™åŸŸé™åˆ¶å…许值。用户å¯ä»¥å°†é™åˆ¶å€¼è®¾ä¸ºéžç©ºï¼ˆNOT NULL)或唯一( UNIQUE),或者定义一个检验性的约æŸï¼Œè¯¥çº¦æŸæŒ‡ä¸€ç§å¯ä»¥åº”用于æŸä¸ªåŸŸçš„规则。比如用户希望é™åˆ¶å§“å’Œå的域是唯一的,就æ„味ç€åœ¨è¡¨ä¸æ°¸è¿œä¸ä¼šæœ‰ä¸¤ä¸ªç›¸åŒå§“å的记录å˜åœ¨ã€‚è¿™æ˜¯å› ä¸ºè¿™ç§çº¦æŸæ˜¯å¤šåŸŸçš„æ€§çš„,是在表的级别定义的,而éžåŸŸçš„级别。使用ADD CONSTRAINTåå¥å¯ä»¥å®šä¹‰ä¸€ä¸ªå¤šåŸŸçš„列表。
ALTER TABLE tblCustomers
ADD CONSTRAINT CustomerNames UNIQUE
([Last Name], [First Name])
注æ„: æˆ‘ä»¬åœ¨è¿™é‡Œåªæ˜¯ç¤ºèŒƒä¸€ä¸‹å¦‚何使用约æŸï¼Œè€Œåœ¨å®žé™…的应用程åºä¸ï¼Œç”¨æˆ·å¯èƒ½å¹¶ä¸å¸Œæœ›å½»åº•é™åˆ¶å§“å的唯一性。
æ£€éªŒæ€§çº¦æŸæ˜¯ä¸€ç§æ–°çš„强有力的SQL特性,它通过一个表达å¼ä»Žè€Œå…è®¸ç”¨æˆ·åœ¨è¡¨ä¸æ·»åŠ æ•°æ®åˆæ³•性检验,该表达å¼å¯ä»¥æŒ‡å‘一个å•域,也å¯ä»¥æŒ‡å‘跨越一个或多个表的多个域。比如用户希望确定输入到å‘票记录ä¸çš„æ•°å€¼æ˜¯å¦æ€»æ˜¯å¤§äºŽ0,则å¯ä»¥åœ¨ALTER TABLEè¯å¥çš„ADD CONSTRAINTåå¥ä¸å®šä¹‰ä¸€ä¸ªCHECK关键å—。
ALTER TABLE tblInvoices
ADD CONSTRAINT CheckAmount
CHECK (Amount > 0)
注æ„: 检验性约æŸè¯å¥åªèƒ½é€šè¿‡Jet OLE DB providerå’ŒADOæ¥æ‰§è¡Œï¼Œåœ¨Access SQL View的用户界é¢ä¸ä½¿ç”¨å°†è¿”回错误信æ¯ã€‚而且,è¦åˆ 除一个检验性约æŸï¼Œä¹Ÿå¿…须在Jet OLE DB provider å’ŒADO䏿‰§è¡ŒDROP CONSTRAINTè¯å¥ã€‚å¦å¤–,如果用户已ç»å®šä¹‰äº†ä¸€ä¸ªæ£€éªŒæ€§çº¦æŸï¼š (1) 在Access的用户界é¢ä¸å¹¶ä¸ä¼šæ˜¾ç¤ºä¸ºä¸€ä¸ªåˆæ³•性规则,(2) 用户也ä¸èƒ½åœ¨è¯¥ç•Œé¢ä¸å®šä¹‰åˆæ³•性文本的属性,å¦åˆ™å°†ç»™å‡ºä¸€èˆ¬æ€§é”™è¯¯ä¿¡æ¯ï¼Œ(3) 在用户通过ADO使用DROP CONSTRAINTè¯å¥ä¹‹å‰ï¼Œä¸èƒ½å¤Ÿé€šè¿‡Accessçš„ç”¨æˆ·ç•Œé¢æˆ–者在代ç ä¸åˆ 除数æ®è¡¨ã€‚
用æ¥å®šä¹‰ä¸€ä¸ªæ£€éªŒæ€§çº¦æŸçš„表达å¼ä¹Ÿå¯ä»¥ç”¨æ¥æŒ‡å‘åŒä¸€ä¸ªè¡¨ä¸çš„多个域,甚至是其他表ä¸çš„域。其ä¸å¯ä»¥ä½¿ç”¨ä»»ä½•在Microsoft Jet SQL ä¸åˆæ³•çš„æ“作符,比如SELECT è¯å¥ã€æ•°å¦è¿ç®—符ã€ä»¥åŠé›†åˆå‡½æ•°ç‰ã€‚用æ¥å®šä¹‰æ£€éªŒæ€§çº¦æŸçš„表达å¼çš„长度ä¸èƒ½è¶…过64个å—符。
è®¾æƒ³ç”¨æˆ·å¸Œæœ›åœ¨å°†é¡¾å®¢åŠ å…¥åˆ°Customers è¡¨ä¹‹å‰æ£€æŸ¥æ¯ä¸ªé¡¾å®¢çš„信用é¢åº¦ã€‚则å¯ä»¥ä½¿ç”¨å¸¦æœ‰ADD COLUMN å’ŒCONSTRAINT åå¥çš„ALTER TABLE è¯å¥ç”Ÿæˆä¸€ä¸ªçº¦æŸï¼Œè¯¥çº¦æŸå°†æŸ¥æ‰¾åœ¨CreditLimit表ä¸çš„值æ¥éªŒè¯é¡¾å®¢çš„信用é¢åº¦ã€‚下é¢çš„SQLè¯å¥å°†ç”Ÿæˆä¸€ä¸ªtblCreditLimit 表,然åŽå°†CustomerLimitåŸŸåŠ å…¥åˆ°tblCustomers 表ä¸ï¼Œå¹¶å°†æ£€éªŒæ€§çº¦æŸåŠ åˆ°tblCustomers表,最åŽå¯¹è¯¥æ£€éªŒæ€§çº¦æŸè¿›è¡Œæµ‹è¯•。
CREATE TABLE tblCreditLimit (
Limit DOUBLE)
INSERT INTO tblCreditLimit
VALUES (100)
ALTER TABLE tblCustomers
ADD COLUMN CustomerLimit DOUBLE
ALTER TABLE tblCustomers
ADD CONSTRAINT LimitRule
CHECK (CustomerLimit
Add a Comment