SQL Server 2005中的CLR集成(2)_Mssql數(shù)據(jù)庫教程
推薦:SQL SQL Server 2008中的新日期數(shù)據(jù)類型這篇文章主要介紹了Oracle數(shù)據(jù)庫到SQL Server數(shù)據(jù)庫主鍵的遷移過程,具體內(nèi)容請參考下文。 由于項(xiàng)目需要要將以前Oracle的數(shù)據(jù)庫轉(zhuǎn)化為SQL Server,今天利用SQL Server的DTD進(jìn)行數(shù)據(jù)庫的遷移,但導(dǎo)入以后發(fā)現(xiàn)只導(dǎo)入了表結(jié)構(gòu)和數(shù)據(jù),而表的一些主鍵約束都沒導(dǎo)過
4.1 創(chuàng)建復(fù)雜CLR存儲過程
在這個(gè)示例中,將創(chuàng)建從AdventureWorks數(shù)據(jù)庫的Production.Product表返回?cái)?shù)據(jù)的存儲過程。首先,選擇“文件”→“新建項(xiàng)目”,然后在彈出窗口的左邊導(dǎo)航菜單中選擇“Visual C#”→“數(shù)據(jù)庫”,接著將項(xiàng)目模板選擇為“SQL Server項(xiàng)目”,這樣可在Visual Studio 2005中創(chuàng)建新項(xiàng)目SqlServerDataAccess。如果單擊新建項(xiàng)目對話框中的OK按鈕,那么會(huì)要求添加數(shù)據(jù)庫引用。如果AdventureWorks引用還不可用,那么可使用“添加新引用”選項(xiàng)來添加指向AdventureWorks數(shù)據(jù)庫的引用。
當(dāng)選擇啟用CLR存儲過程調(diào)試和項(xiàng)目建立后,在菜單中選擇“項(xiàng)目”→“添加存儲過程”項(xiàng),接著設(shè)置類名稱為GetProducts.cs。一旦創(chuàng)建了類,可根據(jù)示例1修改代碼。
示例1:由CLR存儲過程返回表格式結(jié)果集
|
以下為引用的內(nèi)容: using System; |
這個(gè)程序集中的代碼創(chuàng)建了數(shù)據(jù)庫連接,然后執(zhí)行T-SQL語句,結(jié)果返回Product表中具有所提供類別ID的ProductID和Name列的所有記錄。注意,示例1所示的上下文連接允許在調(diào)用CLR代碼的同一上下文中執(zhí)行SQL語句。為了啟用上下文連接,可將連接字符串設(shè)置為“context connection=True”。
為了使用在SQL Server中處理的數(shù)據(jù),內(nèi)部過程的提供程序進(jìn)行了優(yōu)化。使用內(nèi)部過程受管的提供程序的類和方法,能夠很簡單的將查詢提交給數(shù)據(jù)庫,執(zhí)行DML和DDL語句,以及將結(jié)果集和消息返回給客戶端應(yīng)用程序。
Microsoft.SqlServer.Server命名空間對組成內(nèi)部過程提供程序的類型進(jìn)行分組。這個(gè)命名空間與ADO.NET的SqlClient命名空間共享很多相似性和接口,開發(fā)人員使用SqlClient命名空間從受管客戶端和中間層應(yīng)用程序訪問SQL Server數(shù)據(jù)。由于具有相似性,所以能夠很簡單的將代碼從客戶端應(yīng)用程序遷移到服務(wù)器和后臺使用。
Microsoft.SqlServer.Server命名空間中有兩個(gè)重要類,它們用于設(shè)置內(nèi)部過程提供程序:
SqlContext:這個(gè)類封裝了其他一些擴(kuò)展。另外,該類提供了事務(wù)和數(shù)據(jù)庫連接,它們是例程執(zhí)行環(huán)境的一部分。
SqlPipe:這個(gè)類可使例程向客戶端發(fā)送表格式結(jié)果和消息。這個(gè)類在概念上與ASP.NET中的Response類很相似,Response類也能用于向調(diào)用者發(fā)送消息。
既然已經(jīng)創(chuàng)建了存儲過程,那么就可以使用“生成”→“生成SqlServerDataAccess”菜單項(xiàng)生成項(xiàng)目。一旦項(xiàng)目生成,下一步是將存儲過程部署到SQL Server。與前一示例不同,前一示例必須通過很多步驟才能部署存儲過程,而Visual Studio 2005只要單擊按鈕就能夠部署存儲過程。為此,可選擇“生成”→“部署SqlServerDataAccess”菜單項(xiàng)。以上就是使用Visual Studio 2005部署CLR存儲過程的全部過程。
此時(shí),可以通過執(zhí)行來測試這個(gè)存儲過程。為了達(dá)成本示例目的,創(chuàng)建一個(gè)測試該存儲過程的簡單ASP.NET頁面,如示例2所示。
分享:解析SQL Server 2008性能和可擴(kuò)展性1.導(dǎo)言 現(xiàn)今的公司需要易訪問的和可用性好的商業(yè)數(shù)據(jù),以便他們可以在全球市場中獲得一席之地。與易訪問數(shù)據(jù)的這個(gè)需求相呼應(yīng)的,關(guān)系數(shù)據(jù)庫和分析數(shù)據(jù)庫在規(guī)模方面繼續(xù)發(fā)展,內(nèi)嵌數(shù)據(jù)庫和許多產(chǎn)品一起出現(xiàn),并且許多公司將服務(wù)器合并來減輕管理工作。當(dāng)公司
- sql 語句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無法查看數(shù)據(jù)庫,提示 無法為該請求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲過程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫教程推薦
- SQL Server游標(biāo)的使用/關(guān)閉/釋放/優(yōu)化小結(jié)
- 談SQL Server數(shù)據(jù)庫管理常用的SQL和T-SQL語句
- 解決sql server查詢速度慢11個(gè)方法
- SQL Server 中易混淆的數(shù)據(jù)類型
- 怎樣讓SQL Server加速運(yùn)行
- SQL Server記錄輪班的技巧
- SQL Server連接中常見錯(cuò)誤的解決方法
- 解析數(shù)據(jù)庫大戰(zhàn): MS SQL Server IBM DB2
- 獲取SQL Server表字段的各種屬性實(shí)例代碼
- 解析SQL Server數(shù)據(jù)庫觸發(fā)器的安全隱患
猜你也喜歡看這些
- mysql出現(xiàn)“Incorrect key file for table”處理方法
- Mysql select in 按id排序?qū)崿F(xiàn)方法
- mysql 導(dǎo)入導(dǎo)出數(shù)據(jù)庫以及函數(shù)、存儲過程的介紹
- mysql 按照時(shí)間段來獲取數(shù)據(jù)的方法
- MySQL 主主同步配置步驟
- MSSQL清空日志刪除日志文件
- MySQL數(shù)據(jù)庫備份和還原的常用命令
- MySQL:數(shù)據(jù)庫知識點(diǎn)
- 解決bash: mysql: command not found 的方法
- 關(guān)于Mysql查詢帶單引號及插入帶單引號字符串問題
- 相關(guān)鏈接:
- 教程說明:
Mssql數(shù)據(jù)庫教程-SQL Server 2005中的CLR集成(2)
。