觸發(fā)器與存儲過程_第1頁
觸發(fā)器與存儲過程_第2頁
觸發(fā)器與存儲過程_第3頁
觸發(fā)器與存儲過程_第4頁
觸發(fā)器與存儲過程_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

/觸發(fā)器與存儲過程一、實驗?zāi)康暮鸵?、理解觸發(fā)器與存儲過程的概念.2、掌握使用T_SQL創(chuàng)建、查看、刪除觸發(fā)器的方法。3、掌握使用T_SQL創(chuàng)建、查看、刪除存儲過程的方法.4、掌握觸發(fā)器和存儲過程在數(shù)據(jù)庫中的應(yīng)用。二、實驗內(nèi)容和步驟㈠觸發(fā)器1、觸發(fā)器的概念觸發(fā)器是一段能自動執(zhí)行的程序,是一種特殊的存儲過程,其特殊性在于:不允許使用參數(shù),沒有返回值。不允許用戶調(diào)用,當(dāng)對表進行插入、刪除、修改操作時由系統(tǒng)自動調(diào)用并執(zhí)行(相當(dāng)于事件方法).為數(shù)據(jù)表中某個字段設(shè)置觸發(fā)器后,當(dāng)該字段的數(shù)據(jù)被INSERT插入、DELETE刪除、UPDATE修改更新時,觸發(fā)器便被激活并自動執(zhí)行.SQLServer按觸發(fā)器被激活的時機可分為“后觸發(fā)"和“替代觸發(fā)”兩種觸發(fā)方式。(1)后觸發(fā)若引發(fā)觸發(fā)器執(zhí)行的語句通過了各種約束檢查,成功執(zhí)行后才激活并執(zhí)行觸發(fā)器程序,這種觸發(fā)方式稱為“后觸發(fā)”。后觸發(fā)的特點:若引發(fā)觸發(fā)器執(zhí)行的語句違反了某種約束,該語句不會執(zhí)行,則后觸發(fā)方式的觸發(fā)器也不被激活。后觸發(fā)方式只能創(chuàng)建在數(shù)據(jù)表上,不能創(chuàng)建在視圖上。一個表可以有多個后觸發(fā)觸發(fā)器。(2)替代觸發(fā)若激活觸發(fā)器的語句僅僅起到激活觸發(fā)器的作用,一旦激活觸發(fā)器后該語句即停止執(zhí)行,立即轉(zhuǎn)去執(zhí)行觸發(fā)器的程序—激活觸發(fā)器的語句并不被執(zhí)行,相當(dāng)于禁止某種操作.這種觸發(fā)方式稱為“替代觸發(fā)".替代觸發(fā)的特點:

替代觸發(fā)可以創(chuàng)建在表上,也可以創(chuàng)建在視圖上。

一個表只能有一個替代觸發(fā)的觸發(fā)器。2、觸發(fā)器使用的inserted臨時表和deleted臨時表不論后觸發(fā)或替代觸發(fā),每個觸發(fā)器被激活時,系統(tǒng)都自動為它們創(chuàng)建兩個臨時表:inserted和deleted表.兩個表的結(jié)構(gòu)與激活觸發(fā)器的原數(shù)據(jù)表結(jié)構(gòu)相同。用INSERT語句插入記錄激活觸發(fā)器時,系統(tǒng)在原表插入記錄的同時,也自動把記錄插入到inserted臨時表。用SELECT語句刪除記錄激活觸發(fā)器時,系統(tǒng)在原表刪除記錄的同時,會把刪除的記錄添加到deleted臨時表。用UPDATE語句修改數(shù)據(jù)激活觸發(fā)器時,系統(tǒng)先在原表刪除原有記錄,刪除的記錄被添加到deleted臨時表,然后再插入新記錄,并同時插入到inserted臨時表。用戶可以用SELECT語句查詢這兩個臨時表,但不允許進行修改。觸發(fā)器一旦執(zhí)行完成,這兩個表將被自動刪除。3、觸發(fā)器語法格式:CREATETRIGGER觸發(fā)器名ON{表名|視圖名}{for|after|insteadof}[insert,update,delete][WITHencryption]ASSQL語句系列[ROLLBACKTRANSACTION]——事務(wù)回滾ON{表名|視圖名}:指定激活觸發(fā)器被操作的表或視圖。for與after:指定所創(chuàng)建的觸發(fā)器為后觸發(fā)方式,for與after完全相同,for是為了與以前老版本兼容而保留.insteadof:指定所創(chuàng)建的觸發(fā)器為替代觸發(fā)方式。insert,update,delete:指定激活該觸發(fā)器的具體操作,可以指定一項,也可三項同時指定,但必須以逗號隔開。SQL語句系列:即觸發(fā)器被指定操作激活后要執(zhí)行的SQL代碼,其中可包含獲得被操作數(shù)據(jù)的SELECT語句:后觸發(fā)方式被操作數(shù)據(jù)一定在inserted或deleted臨時表中。如果被操作的數(shù)據(jù)是多值的,可用IN判斷是否被包含在其中:被操作數(shù)據(jù)IN(SELECT被操作字段FROM臨時表)如果被操作的數(shù)據(jù)是單值的,可用以下語句獲得:SELECT@變量=被操作字段FROM臨時表ROLLBACKTRANSACTION:事務(wù)回滾語句。對于后觸發(fā)方式,語句已經(jīng)執(zhí)行完畢才執(zhí)行觸發(fā)器,如果發(fā)現(xiàn)操作不符合規(guī)則,可用該語句取消操作.4、觸發(fā)器實例STEP1、創(chuàng)建《電腦器材銷售管理》數(shù)據(jù)庫diannaoxs。代碼如下:CREATEDATABASEdiannaoxs—-創(chuàng)建數(shù)據(jù)庫ON(NAME=diannaoxs1,-—創(chuàng)建主數(shù)據(jù)文件='D:\DNXS\diannaoxs1。mdf',SIZE=1,MAXSIZE=UNLIMITED,-—最大容量不受限制=10%),(NAME=diannaoxs2,--創(chuàng)建輔助數(shù)據(jù)文件='D:\DNXS\diannaoxs2。ndf’,SIZE=1,MAXSIZE=UNLIMITED,=10%)LOGON/*創(chuàng)建事務(wù)日志文件*/(NAME=diannaoxslog,='D:\DNXS\diannaoxslog.LDF',SIZE=500KB,MAXSIZE=5,/*日志文件最大容量5MB*/=500KB)STEP2、在數(shù)據(jù)庫diannaoxs中創(chuàng)建4張表。請留意每張表的字段屬性及約束.涉及到數(shù)據(jù)庫完整性的內(nèi)容,包括默認值、規(guī)則、數(shù)據(jù)表結(jié)構(gòu)的修改等,不明之處可參見前面的實驗.usediannaoxsCREATETABLE商品一覽表(?貨號char(4)NOTNULLPRIMARYKEY, 貨名nvarchar(8)NOTNULLdefault('計算機'), 規(guī)格char(4)NOTNULL,?單位char(2)NOTNULL,?參考價格numeric(6,2)NULL,?庫存量intNULLdefault(0))CREATETABLE員工表( 員工IDchar(5)NOTNULLCONSTRAINTPK_員工表PRIMARYKEY, 姓名varchar(8)NOTNULLCONSTRAINTIX_員工表UNIQUE, 性別bitNOTNULLCONSTRAINTCK_員工表CHECK(性別=0or性別=1), 出生日期datetimeNOTNULL,?部門nvarchar(5)NOTNULLCONSTRAINTDF_員工表_部門DEFAULT('銷售科'),?工作時間smalldatetimeNOTNULL?)CREATETABLE銷售表( 序號bigintIDENTITY(1,1)NOTNULLPRIMARYKEY, 銷售日期smalldatetimeNOTNULL,?客戶名稱nvarchar(15)NOTNULL, 貨號char(4)NOTNULL,?貨名nvarchar(8)NULL, 單價smallmoneyNOTNULL,?數(shù)量intNOTNULL, 金額moneyNULL,?銷售員varchar(8)NOTNULL?)GOCREATEDEFAULTDefaultDat(yī)eGOsp_bindefaultDefaultDate,'銷售表.銷售日期'GOcreaterule大于0as@y>0GOSp_bindrule大于0,’銷售表.單價'GOSp_bindrule大于0,'銷售表.?dāng)?shù)量'GOAltertable銷售表AddConstraintFKfForeignKey(銷售員)References員工表(姓名)CREATETABLE供貨商表(供貨商IDChar(4)notnullprimarykeycheck(供貨商IDlike'[a-zA-Z0-9][a—zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]’),供貨商Nvarchar(15)notnull,廠家地址Nvarchar(20)notnullunique,賬戶Char(15)notnullunique,聯(lián)系人Varchar(8))ALTERTABLE供貨商表add聯(lián)系電話char(13)nullALTERTABLE供貨商表altercolumn聯(lián)系電話char(20)notnullALTERTABLE供貨商表addconstraint惟一廠家unique(供貨商)ALTERTABLE供貨商表addconstraint電話約束unique(聯(lián)系電話),default'’FOR聯(lián)系電話注釋:新增加字段時可以同時設(shè)置空值約束、默認值約束。

若不允許為空時則必須給新增加的列指定默認值,否則語句執(zhí)行錯誤。添加的字段若不允許為空則必須設(shè)置默認值,如果不允許為空又不需要默認值,可在添加字段時先允許為空,再用altercolumn子句修改為不允許為空,則沒有默認值.STEP3、數(shù)據(jù)操縱,往各表中添加記錄。INSERT商品一覽表(貨號,貨名,規(guī)格,單位,參考價格,庫存量)VALUES(’1001’,’計算機',’LC','套’,5800,16)INSERT商品一覽表(貨號,貨名,規(guī)格,單位,參考價格,庫存量)VALUES('1002’,default,'LX’,'套',5600,8)INSERT商品一覽表(貨號,貨名,規(guī)格,單位,參考價格,庫存量)VALUES('2001’,’顯示器',’15','臺’,980,26)INSERT商品一覽表(貨號,貨名,規(guī)格,單位,參考價格,庫存量)VALUES('2002','顯示器','17’,'臺’,1250,23)INSERT商品一覽表(貨號,貨名,規(guī)格,單位,參考價格,庫存量)VALUES(’3001’,'CPU處理器',’P4’,'個’,420,48)INSERT商品一覽表(貨號,貨名,規(guī)格,單位,參考價格,庫存量)VALUES('4001','內(nèi)存儲條','512M’,'片',225.5,70)INSERT商品一覽表(貨號,貨名,規(guī)格,單位,參考價格,庫存量)VALUES('4002','內(nèi)存儲條','1G’,'片',335.5,105)INSERT供貨商表VALUES('SDLC’,'山東省浪潮集團公司銷售公司’,’濟南市山大路1008號','1002—305-6','劉緒華',’8’)INSERT供貨商表VALUES('BJFZ','北京方正電腦有限公司','北京市海淀區(qū)友誼路235號甲','20006786570',’王連勝’,'')INSERT供貨商表VALUES(’BJLX’,’北京聯(lián)想科技股份有限公司','北京市中關(guān)村6068-6號','11204567765','趙捷’,’')INSERT供貨商表VALUES('SHSC',’上海電腦市場器材銷售中心','上海市虹口區(qū)8弄科技路225號’,'336-448-669’,’李群','’)INSERT供貨商表VALUES('SHKD','上??拼笥嬎銠C技術(shù)服務(wù)公司','上海市浦東東方明珠5925號',’2246800012’,’張茂嶺',default)INSERT供貨商表VALUES(’SDKJ',’山東科技市場計算機銷售處','濟南市經(jīng)七緯二路9415號','1245—7845—55',NULL,'')INSERT員工表(員工ID,姓名,性別,出生日期,部門,工作時間)VALUES('11001',’呂川頁’,1,'1963-3-7',’辦公室',’1985-2—INSERT員工表(員工ID,姓名,性別,出生日期,部門,工作時間)VALUES(’22001’,’鄭學(xué)敏',0,'1969—11-23','辦公室','1994INSERT員工表(員工ID,姓名,性別,出生日期,部門,工作時間)VALUES(’22002',’于麗',0,'1980—12—5’,’INSERT員工表(員工ID,姓名,性別,出生日期,部門,工作時間)VALUES('22003','孫立華’,1,’1979—5-4’,'材料處','INSERT員工表(員工ID,姓名,性別,出生日期,部門,工作時間)VALUES('33001','高宏’,1,'1982-9—29',default,'INSERT員工表(員工ID,姓名,性別,出生日期,部門,工作時間)VALUES(’33002',’章曉曉',0,'1980-11—1','銷售科',’2000-5-30INSERT員工表(員工ID,姓名,性別,出生日期,部門,工作時間)VALUES('33003',’陳剛',1,'1979—6—30’INSERT銷售表(銷售日期,客戶名稱,貨號,數(shù)量,單價,銷售員)VALUES('2010—3-20','濟南新浪計算機公司’,3,5780,'高宏’)INSERT銷售表(銷售日期,客戶名稱,貨號,數(shù)量,單價,銷售員)VALUES('2010—6-20','濟南新浪計算機公司',5,400,'章曉曉')INSERT銷售表(銷售日期,客戶名稱,貨號,數(shù)量,單價,銷售員)VALUES('2010-11—20',’濰坊電腦器材商店','400225,320,'陳剛’)STEP4、觸發(fā)器應(yīng)用例題例一:為“員工表"創(chuàng)建一個名為“修改姓名”的后觸發(fā)器,當(dāng)修改某個員工姓名時,需要把“銷售表”的“銷售員”同時進行修改,實現(xiàn)級聯(lián)修改。首先刪除在企業(yè)管理中刪除“銷售表"上的外碼約束FKf.在查詢分析器中輸入以下代碼:IFexists(SELECTnameFROMsysobjectsWHEREname='修改姓名'ANDtype=’tr')DROPTRIGGER修改姓名GOCREATETRIGGER修改姓名ON員工表afterupdateASDECLARE@xm1varchar(8),@xm2varchar(8)SELECT@xm1=姓名FROMdeleted--從deleted表得到被刪除的原姓名SELECT@xm2=姓名FROMinserted-—從inserted表得到被更新的新姓名UPDATE銷售表SET銷售員=@xm2WHERE銷售員=@xm1GO請同學(xué)自己驗證此觸發(fā)器的作用。例二:為“銷售表”創(chuàng)建一個名字為“銷售檢查”的后觸發(fā)器,當(dāng)銷售某種商品添加一條新記錄時,能自動執(zhí)行以下操作:自動檢查銷售“數(shù)量”不允許大于《商品一覽表》中的“庫存量”。自動檢查“單價”下浮或上調(diào)不允許超出《商品一覽表》“參考價格”的5%范圍.根據(jù)“貨號”自動從《商品一覽表》中獲得相應(yīng)的“貨名”數(shù)據(jù).自動計算“金額=單價*數(shù)量”。對《商品一覽表》中“庫存量”進行自動更新。實現(xiàn)此例觸發(fā)器的語句如下:IFexists(SELECTnameFROMsysobjectsWHEREname=’銷售檢查’ANDtype='tr')DROPTRIGGER銷售檢查GOCREATETRIGGER銷售檢查ON銷售表afterinsertASDECLARE@xhBigInt,@hhchar(4),@slint,@djSmallmoney,@hmNvarchar(8),@ckjgnumeric(6,2),@kcintSELECT@xh=序號,@hh=貨號,@sl=數(shù)量,@dj=單價FROMinsertedSELECT@hm=貨名,@ckjg=參考價格,@kc=庫存量FROM商品一覽表WHERE貨號=@hhIF@sl<=@kcBEGINIF@dj>=@ckjg*0.95AND@dj<=@ckjg*1.05BEGINUPDATE銷售表--條件不能使用貨號SET貨名=@hm,金額=@sl*@djWHERE序號=@xhUPDATE商品一覽表SET庫存量=@kc—@slWHERE貨號=@hhENDELSEBEGINPRINT'單價超出參考價格’+cast(@ckjgASvarchar(10))+'的%5范圍,不能銷售'ROLLBACKTRANSACTION-—事務(wù)回滾,撤消插入ENDENDELSEBEGINPRINT’銷售量大于庫存量’+cast(@kcASvarchar(4))+',庫存不足不能銷售'ROLLBACKTRANSACTIONENDGO下面的INSERT代碼在上述觸發(fā)器的影響下,可生成不同的響應(yīng).INSERT銷售表(銷售日期,客戶名稱,貨號,數(shù)量,單價,銷售員)VALUES('2010—12-20’,'北京市海淀區(qū)友誼路235甲','4001’,80,240,'陳剛—-銷售量大于庫存量70,庫存不足不能銷售INSERT銷售表(銷售日期,客戶名稱,貨號,數(shù)量,單價,銷售員)VALUES(’2010-12-20’,'北京市海淀區(qū)友誼路235甲’,’4001’,10,240,'陳剛’)--單價超出參考價格225。50的%5范圍,不能銷售INSERT銷售表(銷售日期,客戶名稱,貨號,數(shù)量,單價,銷售員)VALUES(’2010-12—20','北京市海淀區(qū)友誼路235甲','4001',10,230,'陳剛例三:為“商品一覽表”創(chuàng)建一個名為“修改商品”的后觸發(fā)器,禁止修改“庫存量”;當(dāng)修改某個商品的貨名時,需要把“銷售表”中相應(yīng)的數(shù)據(jù)同時全部修改,實現(xiàn)“商品一覽表”和“銷售表”的級聯(lián)修改。IFexists(SELECTnameFROMsysobjectsWHEREname='修改商品’ANDtype='tr')DROPTRIGGER修改商品GOCREATETRIGGER修改商品ON商品一覽表afterupdateASDECLARE@hhchar(4),@hmnvarchar(8),@pj1int,@pj2int,@kc1int,@kc2intSELECT@hh=貨號,@kc1=庫存量FROMdeletedSELECT@hm=貨名,@kc2=庫存量FROMinsertedIF@kc1<>@kc2BEGINPRINT'庫存量不允許修改!'ROLLBACKTRANSACTION--事務(wù)回滾,撤消修改ENDELSEUPDATE銷售表SET貨名=@hmWHERE貨號=@hhGO若執(zhí)行update商品一覽表set庫存量=100where庫存量=105語句會看到系統(tǒng)提示“庫存量不允許修改!”若在“商品一覽表”中把貨號為4001的貨名改為“內(nèi)存條”,可在銷售表中看到級聯(lián)修改效果。例四:設(shè)置替代觸發(fā)器“禁止修改”,不允許對“供貨商表"的廠家記錄進行修改、刪除。IFexists(SELECTnameFROMsysobjectsWHEREname=’禁止修改'ANDtype='tr’)DROPTRIGGER禁止修改GOCREATETRIGGER禁止修改ON供貨商表insteadofupdate,delete--修改或刪除激活A(yù)SPRINT’請原諒,《供貨商表》不允許對任何數(shù)據(jù)修改和刪除。'GO該觸發(fā)器為替代觸發(fā),只要對“供貨商表"進行任何修改、刪除操作,則立即停止并取消該SQL語句對“供貨商表”的操作,激活并執(zhí)行觸發(fā)器,所以不需要事務(wù)回滾語句。5、觸發(fā)器的查看在控制臺根目錄下展開數(shù)據(jù)庫→展開數(shù)據(jù)表節(jié)點,選中要創(chuàng)建觸發(fā)器的表,右鍵單擊鼠標(biāo),從快捷菜單中選擇“所有任務(wù)”→“管理觸發(fā)器”命令,彈出“觸發(fā)器屬性”對話框。語法格式:Sp_help觸發(fā)器名Sp_helptext觸發(fā)器名6、觸發(fā)器的刪除Droptrigger觸發(fā)器名(二)存儲過程1、存儲過程的概念存儲過程(storedprocedure)是由一系列對數(shù)據(jù)庫進行復(fù)雜操作的SQL語句、流程控制語句或函數(shù)組成的,并且將代碼事先編譯好之后、象規(guī)則、視圖那樣作為一個獨立的數(shù)據(jù)庫對象進行存儲管理。使用存儲過程的優(yōu)點執(zhí)行速度快:存儲過程在創(chuàng)建時已經(jīng)通過語法檢查和編譯,調(diào)用時則直接執(zhí)行,程序的運行效率高,其執(zhí)行速度要比標(biāo)準(zhǔn)SQL語句快得多。含有大量SQL語句的批處理需要重復(fù)多次執(zhí)行時,定義為存儲過程可大大提高運行效率。利于模塊化程序設(shè)計:存儲過程創(chuàng)建后,即可以無數(shù)次隨時任意繁榮調(diào)用??筛鶕?jù)不同的功能模式設(shè)計不同的存儲過程以供調(diào)用。便于程序的維護管理:當(dāng)用戶對數(shù)據(jù)庫使用的功能改變時,只需對相應(yīng)的存儲過程進行修改而不用修改應(yīng)用程序.減少網(wǎng)絡(luò)通信量:存儲過程可包含大量對數(shù)據(jù)庫進行復(fù)雜操作的SQL語句,它的存儲執(zhí)行都在SQLServer服務(wù)器(數(shù)據(jù)庫)端,網(wǎng)絡(luò)用戶使用時只需發(fā)送一個調(diào)用語句就可以實現(xiàn),大大減少了網(wǎng)絡(luò)上SQL語句的傳輸。保證系統(tǒng)的安全性:可以在存儲過程中設(shè)置用戶對數(shù)據(jù)的訪問權(quán)限,只允許用戶調(diào)用存儲過程而不允許直接對數(shù)據(jù)進行訪問,充分發(fā)揮安全機制的作用。2、存儲過程的語法格式:CREATEPROCEDURE存儲過程名[@形參變量數(shù)據(jù)類型[=默認值][output]][,…n]ASSQL語句系列其中:@形參變量為指定接收調(diào)用參數(shù)或返回值的變量,默認狀態(tài)下只表示單一數(shù)值,不能代表表名、列名或其他對象名,形參變量的作用域為該存儲過程;

默認值:調(diào)用過程語句時不提供參數(shù)時,形參變量則取該默認值.默認值只能是常量或NULL。Output:指定形參變量是返回給調(diào)用語句的參數(shù),可以是所有數(shù)據(jù)類型,也可以是游標(biāo)占位符.注意:在數(shù)據(jù)庫內(nèi)創(chuàng)建的每個對象(約束、默認值、日志、規(guī)則、存儲過程等)都會作為該庫系統(tǒng)表Sysobjects中的一條記錄占一行,該表的結(jié)構(gòu)如下表所示:Sysobjects系統(tǒng)表的結(jié)構(gòu)列名數(shù)據(jù)類型存儲內(nèi)容說明NameSysname對象名Idint對象標(biāo)識名Xtype或typeChar(2)對象類型。其中的主要類型:C=CHECK約束P=存儲過程D=默認值或DEFAULT約束TR=觸發(fā)器F=FOREIGNKEY約束V=視圖K=PRIMARYKEY或UNIQUE約束R=規(guī)則FN=標(biāo)量函數(shù)(自定義函數(shù))U=用戶表L=日志S=系統(tǒng)表3、存儲過程實例:例一:在diannaoxs數(shù)據(jù)庫中建立一個名為“計算機_pro”的存儲過程,用于在“商品一覽表”和“銷售表”中查詢“計算機”產(chǎn)品的基本信息及其銷售情況。先判斷sysobjects系統(tǒng)表中是否存在名為“計算機_pro"的存儲過程,如果存在則刪除原有的存儲過程,然后再創(chuàng)建。IFexists(SELECTnameFROMsysobjectsWHEREname=’計算機_pro'ANDtype='p’)DROPprocedure計算機_proGOCREATEprocedure計算機_pro--創(chuàng)建存儲過程ASSELECT*FROM(select*from商品一覽表where貨名=’計算機')asCTleftjoin銷售表onCT.貨號=銷售表.貨號GOEXECUTE計算機_pro-—調(diào)用執(zhí)行存儲過程例二:建立一個名為“商品_pro”的存儲過程,帶有一個參數(shù)接收指定的商品名稱,于在“商品一覽表"和“

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論