當前位置:首頁 » 操作系統 » c資料庫映射

c資料庫映射

發布時間: 2022-04-19 18:46:32

㈠ c# 如何將一個資料庫中的數據映射到另一個虛擬的資料庫

需要一個臨時表來存儲,可以用觸發器來實現

㈡ c 中如何創建資料庫的映射表,可能會用到不同的資料庫,如oracle和mysql

mysql和sqlserver中是沒序列的吧

sqlserver可以在建表的時候,設置自增長。identity(1,1)

mysql可以通過 對主鍵用 auto_increment來實現自增

㈢ 怎麼將ACCESS資料庫映射到C++程序中 急!!!希望大家幫忙


C++的用場

Bjarne Stroustrup清晰地回答了這個問題。以下文字摘編自D&E簡體中文版《C++語言的設計和演化》。

在以下領域,C++有著根本性的優勢:低級系統程序設計、高級系統程序設計、嵌入式程序設計、數值科學計算、通用程序設計以及混合系統設計等等。讓我們略微展開描述一下:

1. 低級系統程序設計:C++是迄今為止最好的低級程序設計語言。

2. 高級系統程序設計:包括操作系統核心、網路管理系統、編譯系統、電子郵件系統、文字排版系統、圖像和聲音的編排系統、通訊系統、用戶界面、資料庫系統等等。

3. 嵌入式系統:包括照相機、汽車、火箭、電話交換機、汽車等等。

4. 數值/科學計算:包括模擬、實時數據獲取和資料庫訪問等等。

Bjarne的個人主頁上,有一頁applications,那兒列出了一些(全部或大部分)使用C++編寫的系統、應用程序和庫。下面是一些例子:

1. Adobe Systems:所有主要應用程序都使用C++開發而成,比如Photoshop & ImageReady、Illustrator和Acrobat等。

2. Maya:知道「蜘蛛人」、「指環王」的電腦特技是使用什麼軟體做出來的嗎?沒錯,就是Maya。

3. Amazon.com:使用C++開發大型電子商務軟體。

4. Apple:部分重要「零件」採用C++編寫而成。

5. AT&T:美國最大的電訊技術提供商,主要產品採用C++開發。

6. Google:Web搜索引擎採用C++編寫。

7. IBM:OS/400。

8. Microsoft:以下產品主要採用C++(Visual C++)編寫:

Windows XP

Windows NT:NT4、2000

Windows 9x:95、98、Me

Microsoft Office:Word、Excel、Access、PowerPoint、Outlook

Internet Explorer,包括Outlook Express

Visual Studio:Visual C++、Visual Basic、Visual FoxPro

.NET Framework類庫採用C#編寫,但C#編譯器自身則使用C++編寫而成。

Exchange

SQL Server

FrontPage

Project

所有游戲

......

9. KDE:K Desktop Environment(Linux)。

10. Symbian OS:最流行的蜂窩電話OS之一。

我通常使用C++進行高端程序開發。

「通常」一詞沒什麼好說的,有時只是出於公司文化或個人愛好方面的原因,選用了別的語言而不是C++,或者相反。我所說的「高端」是指:關鍵業務處理,效率要求極高,實時性要求高等等。

我看見幾乎所有嚴肅的工控系統軟體和實時數據採集、處理和表現(主要是圖形)軟體,都是採用C++(或C,少部分採用Java)編寫而成的。

據我的了解,我原先所在的研究院幾乎每一個研究所都在不同程度地使用C++(以及一些別的語言)。

想想看,迄今為止,現代Unix操作系統的各種變體上,最常使用的是什麼樣的開發語言?(C/C++)

C++語言

C++語言是靈活,但首先要看看使用者能不能發揮它的靈活性;C++語言夠強大,但要看看使用者有沒有本事發揮它的強大功能。

使用C++語言和編譯器編寫一個快速的程序,並不難,不過編寫一個強健而高效的大型程序,就不是那麼容易了。

語言之間的區別,絕非只是大括弧和begin、end或Sub、End Sub之間的區別。選擇了一種語言,你就選擇了一種思維方式,一種程序設計思想。要想跳出語言的束縛,首先要對語言有著深刻的認識和透徹的把握。世界上一些大師級的人物,也常常毫不掩飾自己對某種語言(我並沒有專指C++)的偏愛。一些人對語言尚一知半解,就大談要跳出語言的束縛了 — 你無需跳出,因為你根本不曾深入。

純粹的技術性(學術性)研究,總能給人帶來純粹的快樂。C++語言復雜至極,可研究性極強,但一般來說,沒有3~5年的持續學習、思考、使用,是不可能真正掌握C++的。

我不是唯語言論或唯工具論者,但我反對抹殺不同語言、不同開發工具之間的區別。抱持這種觀點的人,若非無知,即是別有用心。這就好比雜牌筆記本電腦廠商最喜歡叫嚷「筆記本電腦已經進入同質時代」一樣,雜牌機怎麼能和IBM相比?

選擇C++或選擇Java,要看你個人愛好和對將來的打算。雖然只是語言上的差別,但由此決定的就業領域的確不一樣。

不管你走什麼樣的技術路線,不管你用不用它做開發,學習C++總會帶來長遠的好處。一名熟悉C++的開發人員,假如他不是一個偏執狂的話,再學習Java或C#,都要容易得多。

C++不過是一門編程語言,我們總是要用它來解決實際問題,所以要學習開發工具(比如Visual C++),了解操作系統(比如API),熟悉領域知識(比如電力系統),掌握其他軟體技術(比如資料庫),等等。編寫真正的代碼,解決實際問題的能力,才是衡量一名程序員是否有真水平的唯一標准。

設計模式和統一建模語言

設計模式(Design Patterns)和統一建模語言(Unified Modeling Language,UML)是兩個不同的概念。前者主要目標在於提供可重用的面向對象軟體設計方案,後者則是一種描繪軟體藍圖的標准語言。

當然了,可以使用UML來描述設計模式的結構。

UML所描述的模型可以映射成C++、C#、Java等語言代碼,甚至可以映射到關系型資料庫。映射過程可以是雙向的,一般都有相應的軟體工具(或插件)支持。

不同的語言,特性有所差別,這多少會影響設計模式在該語言中的實現(方式、難易)。比方說,假如使用c語言來描述設計模式,那麼,繼承、封裝和多態等特性就變成了需要研究的設計模式,但在任何一門面向對象的語言中,這都純屬多餘。

現在市面上還沒有看到象樣的以C#為手段講述設計模式的書(我沒有看到),但這並不打緊,倘若有興趣,完全可以讀一讀《Design Patterns: Elements of Reusable Object-Oriented Software》(中文版名《設計模式》機械工業出版社)這本書,盡管它主要以C++和Smalltalk語言為講解手段。

設計模式本身無所謂好壞,根據你要解決的目標問題,選擇適當的設計模式。

系統架構

在企業級軟體開發中,架構第一重要。架構有缺陷,系統就存在硬傷。優秀的架構來自於優秀的設計。這一點毋庸置疑。

任何成功的軟體,即使它沒有明確地使用建模思想、架構方法,但在骨子裡、潛意識中,大都具有良好的設計思想和架構。

只有寫過好多好多代碼以後,只有做過一些夠份量的企業級項目之後,才可能對軟體架構形成清晰的認識。很難想像一個連幾行像樣的代碼都沒有寫過的人,對程序思想和架構卻有著深刻的認識。這種人,十有八九屬於紙上談兵之輩。

我們時不時會看到這種情況,軟體的設計也不算太差,但程序員要麼不知道怎麼寫實現代碼,要麼是代碼寫得缺乏效率,或不夠強健,甚至有時連「架構師」自己對此都一籌莫展。

我們也常常聽到一些聲音,不要太拘泥於語言(技術)細節了,要從大處著眼,要有大局觀,架構怎麼怎麼重要,這些都是大實話。不過現實情況往往是,很多程序員不是太拘泥於語言(技術)細節了,而是對語言(技術)細節掌握得還遠遠不夠。

書本知識的重要性毋庸置疑,但絕不要以為讀了兩本書,自己就成了牛氣的架構師、設計師或者什麼建模專家。

從前的軟體開發埋頭實踐而缺乏必要的理論指導。現在越來越走向另外一個極端:設計文稿越來越圖文並茂,琳琅滿目,但開發出來的軟體卻比以前差很多。這種表面文章,意義何在?

資料庫

大多數軟體都要和資料庫打交道,並非只有MIS類軟體如此,資料庫知識幾乎是非掌握不可的,無非使用深度和廣度有別而已。迄今為止,我編寫的每一個項目軟體,都要訪問資料庫,有一個程序甚至同時要跟兩個資料庫打交道(Oracle和SQL Server)。

如果你上過任何一門資料庫基礎理論方面的課,或認真看過任何一本資料庫基礎理論方面的書,或許都不必再買更多的(類似的)書。二十多年以來,關系式資料庫理論之穩定,遠遠超過C++語言的穩定:)

本文來自CSDN博客,轉載請標明出處:

㈣ C語言資料庫是什麼

資料庫是用來存入數據的倉庫。用戶可以對文件中的數據進行新增、查詢、更新、刪除等操作。但是C語言和資料庫是兩個東西,他們之間的關系就是C語言可以用來開發資料庫管理軟體,也可以通過C語言藉助於SQL語句來操作資料庫。

C語言普適性最強的一種計算機程序編輯語言,它不僅可以發揮出高級編程語言的功用,還具有匯編語言的優點,因此相對於其它編程語言,它具有自己獨特的特點。具體體現在以下三個方面:

其一,廣泛性。C 語言的運算范圍的大小直接決定了其優劣性。C 語言中包含了34種運算符,因此運算范圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。此外,C 語言包含了字元型、指針型等多種數據結構形式,因此,更為龐大的數據結構運算它也可以應付。

其二,簡潔性。9 類控制語句和32個KEYWORDS是C語言所具有的基礎特性,使得其在計算機應用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同 時還能夠支持高級編程,避免了語言切換的繁瑣。


(4)c資料庫映射擴展閱讀

資料庫架構

1、內層:最接近實際存儲體,亦即有關數據的實際存儲方式。

2、外層:最接近用戶,即有關個別用戶觀看數據的方式。

3、概念層:介於兩者之間的間接層。

㈤ 映射庫是什麼意思

綜述

MFC(Microsoft Foundation Classes),是一個微軟公司提供的類庫class libraries,以C++類的形式封裝了Windows的API,並且包含一個應用程序框架,以減少應用程序開發人員的工作量。其中包含的類包含大量Windows句柄封裝類和很多Windows的內建控制項和組件的封裝類。

類庫說明

不是只有 C++程序使用開放資料庫連接,還有其他的規劃環境管理資料庫管理系統,並且能利用這個新的標准。你可以用 A C語言規劃更新一個 SQL 伺服器資料庫,然後你可以使用一個現存產品開放資料庫連接其兼容的報表使用格式,並且列印數據結果。

開放資料庫連接系統就是如此區別使用者界面和現實的資料庫管理的程序以供開發者使用。 你不再必須使用其他資料庫開發工具來做這項工作,因為現有的開放資料庫已經足夠完成相應的工作。

㈥ 數據結構,C語言,資料庫有什麼聯系

如果你是大學生還在學校,還沒進入到具體的開發應用中的話,這3者之間屁的關系都沒有,因為大學裡面的數據結構實際上是開發語言中數據在緩沖區的存儲方式
但是在工程中,數據結構指的是數據模型,如果你需要獨立的搭建一個工程的資料庫,那就必須有數據模型知識。有了數據模型,及模型之間的關系,可以直接通過映射,建立起資料庫。至於c語言,是開發語言,和另外的2個東西沒有直接的關系

㈦ 資料庫中,外模式/模式映射具體指的是什麼

兩級映射,其中實現數據邏輯獨立性的映射是 A.外模式/模式B.模式/模式C.外模式/內模式D.模式/內模式請幫忙給出正確答案和

㈧ sql server 2005 中怎麼創建組和資料庫的映射關系


1、不同之:組織方式.文件系統的文件通常是由操作系統規定的,但是功能方面比較簡單,方便查找定位之用,文件與文件之間不能調用數據;而資料庫中的文件是由資料庫軟體組織的,其程度很高,能方便查找,更重要是它們之間聯系緊密!能相互傳遞據.

2、(1)物理數據層。它是資料庫的最內層,是物理存貯設備上實際存儲的數據的集合。這些數據是原始數據,是用戶加工的對象,由內部模式描述的指令操作處理的位串、字元和字組成。

(2)概念數據層。它是資料庫的中間一層,是資料庫的整體邏輯表示。指出了每個數據的邏輯定義及數據間的邏輯聯系,是存貯記錄的集合。它所涉及的是資料庫所有對象的邏輯關系,而不是它們的物理情況,是資料庫管理員概念下的資料庫。

(3)邏輯數據層。它是用戶所看到和使用的資料庫,表示了一個或一些特定用戶使用的數據集合,即邏輯記錄的集合。

3、程序和數據的獨立性是資料庫的主要特徵之一.作為工程資料庫管理系統,也必須保持這個特徵.為此,介紹了具體的工程資料庫管理系統EDRMS程序與數據的獨立性實現,並用實例予以說明.


1、a關系:關系是一個二維表,表的每行對應一個元組,表的列對應屬性。
b屬性:指關系中的列;
域:值的集,每個屬性的取值的范圍;
元組(Tuple):給出一組域產生笛卡兒乘積D1,D2…Dn,產生笛卡兒乘積D1*D2*….Dn=其中(d1,d2..dn)為元組。
c
關系的表:是一個簡單的表,不準許出現組合的屬性。
d用二維表的形式來表示實體集屬性間的關系,以及實體之間聯系的形式。


1、等值連接:在連接條件中使用等於號(=)運算符比較被連接列的列值,其查詢結果中列出被連接表中的所有列,包括其中的重復列。

自然連接:在連接條件中使用等於(=)運算符比較被連接列的列值,但它使用選擇列表指出查詢結果集合中所包括的列,並刪除連接表中的重復列。


1、在SQL Server 2000 中,資料庫由存儲特定結構化數據集的表集合組成。表中包含行(有時稱作記錄或元組)和列(有時稱作特性)的集合。表中的每一列都設計為存儲某種類型的信息(例如,日期、名稱、美元金額或數字)。表上有幾種控制(約束、規則、觸發器、默認值和自定義用戶數據類型)用於確保數據的有效性。表上可以有索引,利用索引可以快速地找到行。可將聲明引用完整性 (DRI) 約束添加到表上,以確保不同表中相互關聯的數據保持一致。資料庫還可以存儲過程,這些過程使用 Transact-SQL 編程代碼對資料庫中的數據進行操作,如存儲對表數據提供自定義訪問的視圖。

2、SQL Server 2000 使用一組文件映射資料庫。資料庫中的所有數據和對象(如表、存儲過程、觸發器和視圖)都存儲在文件組中。

3、主要數據文件,次要數據文件,事務日誌文件

4、因為利用事務日誌備份可以將資料庫恢復到特定的即時點(如輸入不想要的數據之前的那一點)或故障發生點。在媒體恢復策略中應考慮利用事務日誌備份。


1、表是包含資料庫中所有數據的資料庫對象。表定義為列的集合。
2、每行代表惟一的一條記錄,而每列代表記錄中的一個域。
3、一對多關系,多對多關系,一對一關系


1、Transact-Sql語言的分類如下:
數據類型
變數說明
用來說明變數的命令
流程式控制制語句
2、null表示空值;與其他的比較既非空於空值的區別;null在表中即為空擋數據。

5、通常與LIKE關鍵字一起來使用
可以用在檢查約束中使用LIKE
在後面的查詢語句中還會經常使用到

6、ORDER BY是一個可選的子句,它允許你根據指定要order by的列來以上升或者下降的順序來顯示查詢的

9、.SQL;文本文檔


資料庫中的索引與書籍中的目錄類似。在一本書中,利用目錄可以快速查找所需信息,無須閱讀整本書。在資料庫中,索引使資料庫程序無須對整個表進行掃描,就可以在其中找到所需數據。資料庫中的索引是一個表中所包含的值的列表,其中註明了表中包含各個值的行所在的存儲位置。可以為表中的單個列建立索引,也可以為一組列建立索引;索引採用B樹結構。索引包含一個條目,該條目有來自表中每一行的一個或多個列(搜索關鍵字)。B樹按搜索關鍵字排序,可以在搜索關鍵字的任何子詞條集合上進行高效搜索。例如,對於一個A、B、C列上的索引,可以在A,A、B,A、B、C上對其進行高效搜索。

在隨SQL Server 2000 提供的pubs示例資料庫中,employee表在emp_id列上有一個索引。當SQL Server執行一個語句,在employee 中根據指定的emp_id值查找數據時,它能夠識別emp_id列的索引,並使用該索引查找所需數據。如果該索引不存在,它會從表的第一行開始,逐行搜索指定的emp_id值。

SQL Server 2000為某些類型的約束(如PRIMARY KEY和UNIQUE約束)自動創建索引。可以通過創建不依賴於約束的索引,進一步對表定義進行自定義。

不過,索引為性能所帶來的好處卻是有代價的。帶索引的表在資料庫中會占據更多的空間。另外,為了維護索引,對數據進行插入、更新、刪除操作所花費的時間會更長。在設計和創建索引時,應確保對性能的提高程度大於在存儲空間和處理資源方面的代價。

在考慮是否為一個列創建索引時,應考慮被索引的列是否以及如何用於查詢中。索引對下列查詢很有幫助:

l 搜索符合特定搜索關鍵字值的行(精確匹配查詢)。精確匹配比較是指查詢使用 WHERE 語句指定具有給定值的列條目。例如WHERE emp_id = 'VPA30890F'。

l 搜索其搜索關鍵字值為范圍值的行(范圍查詢)。范圍查詢是指查詢指定其值介於兩個值之間的任何條目。例如WHERE job_lvl BETWEEN 9 and 12。

l 在表 T1 中搜索根據聯接謂詞與表 T2 中的某個行匹配的行(索引嵌套循環聯接)。

l 在不進行顯式排序操作的情況下產生經排序的查詢輸出,尤其是經過排序的動態游標。

l 在不進行顯式排序操作的情況下,按一種有序的順序對行進行掃描,以允許基於順序的操作,如合並聯接和流聚合。

l 以優於表掃描的性能對表中所有的行進行掃描,性能提高是由於減少了要掃描的列集和數據總量(該查詢有覆蓋索引可供使用)。

l 搜索插入和更新操作中重復的新搜索關鍵字值,以實施PRIMARY KEY和 UNIQUE 約束。

l 搜索已定義了FOREIGN KEY約束的兩個表之間匹配的行。

在很多查詢中,索引可以帶來多方面的好處。例如,索引除了可以覆蓋查詢外,還使得可以進行范圍查詢。SQL Server 2000可以在同一個查詢中為一個表使用多個索引,並可以合並多個索引,以便搜索關鍵字共同覆蓋一個查詢。另外,SQL Server會自動確定利用哪些索引進行查詢,並且能夠在表被改動時確保該表的所有索引都得到維護。

一個表如果建有大量索引會影響 INSERT、UPDATE 和 DELETE 語句的性能,因為在表中的數據更改時,所有索引都須進行適當的調整。另一方面,對於不需要修改數據的查詢(SELECT 語句),大量索引有助於提高性能,因為SQL Server 2000有更多的索引可供選擇,以便確定以最快速度訪問數據的最佳方法。對小型表進行索引可能不會產生優化效果,因為 SQL Server 2000在遍歷索引以搜索數據時,花費的時間可能會比簡單的表掃描還長。


視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖並不在資料庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,並且在引用視圖時動態生成。

對其中所引用的基礎表來說,視圖的作用類似於篩選。定義視圖的篩選可以來自當前或其他資料庫的一個或多個表,或者其他視圖。分布式查詢也可用於定義使用多個異類源數據的視圖。如果有幾台不同的伺服器分別存儲組織中不同地區的數據,而用戶需要將這些伺服器上相似結構的數據組合起來,這種方式就很有用。通過視圖進行查詢沒有任何限制,通過它們進行數據修改時的限制也很少。

視圖通常用來集中、簡化和自定義每個用戶對資料庫的不同認識。視圖可用作安全機制,方法是允許用戶通過視圖訪問數據,而不授予用戶直接訪問視圖基礎表的許可權。從SQL Server 2000 復制數據時也可使用視圖來提高性能並分區數據。

視圖可以簡化用戶操作數據的方式。可將經常使用的聯接、投影、聯合查詢和選擇查詢定義為視圖,這樣,用戶每次對特定的數據執行進一步操作時,不必指定所有條件和限定。例如,一個用於報表目的,並執行子查詢、外聯接及聚合以從一組表中檢索數據的復合查詢,就可以創建為一個視圖。視圖簡化了對數據的訪問,因為每次生成報表時無需寫或提交基礎查詢,而是查詢視圖。

視圖允許用戶以不同的方式查看數據,即使他們同時使用相同的數據時也如此。這在具有不同目的和技術水平的用戶共享同一個資料庫時尤為有利。例如,可定義一個視圖以僅檢索由客戶經理處理的客戶數據。視圖可以根據使用該視圖的客戶經理的登錄 ID 決定檢索哪些數據。

可使用視圖將數據導出至其他應用程序。例如,可能希望使用pubs資料庫中的stores和sales表在Excel中分析銷售數據。為此,可創建一個基於stores和sales表的視圖。然後使用數據導入導出工具導出由視圖定義的數據。

Transact-SQL UNION 集合運算符可在視圖內使用,以將來自不同表的兩個或多個查詢結果組合成單一的結果集。這在用戶看來是一個單獨的表,稱為分區視圖。例如,如果一個表含有華盛頓的銷售數據,另一個表含有加利福尼亞的銷售數據,即可從 UNION 創建這兩個表的視圖。該視圖代表了這兩個區域的銷售數據。使用分區視圖時,首先創建幾個相同的表,指定一個約束以決定可在各個表中添加的數據范圍。視圖即使用這些基表創建。當查詢該視圖時,SQL Server 自動決定查詢所影響的表,並僅引用這些表。例如,如果一個查詢指定只需要華盛頓特區的銷售數據,則 SQL Server 只讀取含有華盛頓特區銷售數據的表,而並不訪問其餘的表。分區試圖可基於來自多個異類源(如遠程伺服器)的數據,而不僅僅局限於同一資料庫中的表。例如,要將分別存儲組織中不同區域數據的幾台遠程伺服器上的數據組合起來,可以創建分布式查詢,從每個數據源中檢索數據,然後基於這些分布式查詢創建視圖。所有查詢都只從包含查詢所請求數據的遠程伺服器上讀取表中的數據,其他在視圖中由分布式查詢引用的伺服器均不被訪問。


在使用SQL Server 2000 創建應用程序時,Transact-SQL編程語言是應用程序和SQL Server資料庫之間的主要編程介面。使用Transact-SQL程序時,可用兩種方法存儲和執行程序。可以在本地存儲程序,並創建向SQL Server發送命令並處理結果的應用程序;也可以將程序在SQL Server中存儲為存儲過程,同時創建執行存儲過程並處理結果的應用程序。

SQL Server 2000中的存儲過程與其他編程語言中的過程類似,利用存儲過程可以完成以下任務。

l 接受輸入參數並以輸出參數的形式將多個值返回至調用過程或批處理。

l 包含執行資料庫操作(包括調用其他過程)的編程語句。

l 向調用過程或批處理返回狀態值,以表明成功或失敗(以及失敗原因)。

l 可使用 Transact-SQL EXECUTE 語句運行存儲過程。存儲過程與函數不同,因為存儲過程不返回取代其名稱的值,也不能直接用在表達式中。

使用SQL Server 2000中的存儲過程代替存儲在客戶計算機本地的Transact-SQL程序有很多的好處。

l 允許模塊化程序設計。只需創建過程一次並將其存儲在資料庫中,以後即可在程序中調用該過程任意次。存儲過程可由在資料庫編程方面有專長的人員創建,並可獨立於程序源代碼而單獨修改。

l 允許更快執行。如果某操作需要大量Transact-SQL代碼或需重復執行,存儲過程將比Transact-SQL批代碼的執行要快。將在創建存儲過程時對其進行分析和優化,並可在首次執行該過程後使用該過程的內存中版本。每次運行Transact-SQL語句時,都要從客戶端重復發送,並且在SQL Server 2000每次執行這些語句時,都要對其進行編譯和優化。

l 減少網路流量。一個需要數百行Transact-SQL代碼的操作由一條執行過程代碼的單獨語句就可實現,而不需要在網路中發送數百行代碼。

l 可作為安全機制使用。即使對於沒有直接執行存儲過程中語句的許可權的用戶,也可授予他們執行該存儲過程的許可權。

十一
SQL Server 2000 提供了兩種主要機制來強制業務規則和數據完整性:約束和觸發器。觸發器是一種特殊類型的存儲過程,它在指定的表中的數據發生變化時自動生效。喚醒調用觸發器以響應INSERT、UPDATE或DELETE語句。觸發器可以查詢其他表,並可以包含復雜的Transact-SQL語句。觸發器和觸發它的語句要作為可在觸發器內回滾的單個事務對待。如果檢測到嚴重錯誤(例如磁碟空間不足),則整個事務即自動回滾。

觸發器可通過資料庫中的相關表實現級聯更改。觸發器可以強制CHECK約束定義的約束更為復雜的約束。與CHECK約束不同,觸發器可以引用其他表中的列。例如,觸發器可以使用另一個表中的SELECT比較插入或更新的數據,以及執行其他操作,如修改數據或顯示用戶定義錯誤信息。觸發器也可以評估數據修改前後的表狀態,並根據其差異採取對策。一個表中的多個同類觸發器(INSERT、UPDATE或DELETE)允許採取多個不同的對策以響應同一個修改語句。

約束和觸發器在特殊情況下各有優勢。觸發器的主要好處在於它們可以包含使用Transact-SQL代碼的復雜處理邏輯。因此,觸發器可以支持約束的所有功能;但它在所給出的功能上並不總是最好的方法。

實體完整性總應在最低級別上通過索引進行強制,這些索引或是PRIMARY KEY和UNIQUE約束的一部分,或是在約束之外獨立創建的。假設功能可以滿足應用程序的功能需求,域完整性應通過CHECK約束進行強制,而引用完整性則應通過FOREIGN KEY約束進行強制。

十二
先創建登錄名,可以是windows登錄名也可以sql登錄名
windows登錄名是windows操作系統已經存在的用戶名
sql登錄名要在sql中創建而得的
要創建windows登錄名:
例如:已經在windows中存在一個pkxz用戶,域名是xxiang
create login [xxiang\pkxz] from windows with default_database = css
alter login pkxz with name=ppp
drop login pkxz

注意:只有administrators組的用戶可以訪問所有實例,並可獲所有訪問權,
其餘本地用戶組里的組,只能相對應的訪問實例。
例如:chenshanshan是users用戶組里的,是[xxinag2006\pkxz]實例的域用戶帳戶,
chenshanshan只能訪問這個實例,並可獲所有訪問權。
例如:joan是users用戶組里的,是[xxinag2006\pkxz]實例的登錄名,joan只能訪問這個實例。
要創建sql登錄名:
sql用戶名是pkxz
create login pkxz with password ='xx121314' , default_database = css
alter login pkxz with password = 'pp'
drop login pkxz

注意:sql用戶名只能相對應的訪問實例
例如:pc是[xxiang\pkxz]的登錄名,只能訪問這個實例,不可訪問別的實例。

兩者都創建了登錄名,且都是css為默認資料庫

然後創建完後把登錄名授予角色

sp_addsrvrolemember 'pkxz','sysadmin'
sp_dropsrvrolemember 'pkxz','sysadmin'

伺服器角色只能訪問相對應的實例操作!不能訪問別的實例!

創建用戶
Ceate user pkxz_user from login pkxz with default_schema = pkxz_schema
如果沒有創建架構的話,默認是dbo架構,這里是pkxz_schema

創建架構
創建架構的同時還可以創建該架構所擁有的表,視圖,羨慕且可以對這些對象設軒許可權。
create schema pkxz_schema authorization pkxz_user
Create Table pp (pp int)
Grant Select To pkxz_user_1

資料庫角色
可以自己添加,還有內置固定資料庫角色
自己添加角色
create role CreateTable authorization pkxz_user // CreateTable是角色名
分配許可權
Grant Insert To CreateTable
添加成員
sp_addrolemember 'CreateTable','pkxz_user_1'

public角色的兩個特點,1、初始狀態沒有許可權 2、所有的資料庫的成員都是他的成員
當修改了public角色,其實更改了所有資料庫成員的許可權

許可權的管理

Grant 授予 Revoke 收回許可權 Deny 否認許可權
例如:將一個表pt的插入許可權授予pkxz_user_1
Grant Insert On pt To pkxz_user_1

㈨ 如何在實體類中映射多張表

有A,B,C,D四張表,
public class A{
private B b;
private C c;
private D d;
}
然後在配置中設置

熱點內容
sqlserver運行存儲過程 發布:2024-09-30 21:05:32 瀏覽:207
見主機諾亞入口密碼多少 發布:2024-09-30 20:56:18 瀏覽:257
配置都夠了為什麼玩lol還卡 發布:2024-09-30 20:51:10 瀏覽:313
haskell函數式編程 發布:2024-09-30 20:50:35 瀏覽:597
sql月的最後一天 發布:2024-09-30 20:41:50 瀏覽:730
python列表生成器if 發布:2024-09-30 20:41:46 瀏覽:494
小米手機部落沖突賬號密碼是什麼 發布:2024-09-30 20:40:07 瀏覽:67
linux運維自動化腳本 發布:2024-09-30 20:36:59 瀏覽:597
變聲器最低配什麼配置 發布:2024-09-30 20:29:48 瀏覽:414
devc編譯程序被傳染病毒 發布:2024-09-30 20:29:47 瀏覽:292