偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server 2008中使用DataTable作為存儲(chǔ)過程的參數(shù)

數(shù)據(jù)庫 SQL Server
本文我們主要介紹了SQL Server 2008中使用DataTable作為存儲(chǔ)過程的參數(shù)的相關(guān)知識(shí),并通過一個(gè)一個(gè)實(shí)際的例子進(jìn)行測(cè)試,希望能夠?qū)δ兴鶐椭?/div>

SQL Server 2008中使用DataTable作為存儲(chǔ)過程的參數(shù)的相關(guān)知識(shí)是本文我們主要要介紹的內(nèi)容,筆者在最近工作中寫了幾個(gè)存儲(chǔ)過程,需要向存儲(chǔ)過程中傳遞字符串,因?yàn)镾QL Server 2000中沒有內(nèi)置類似于split 的函數(shù),只好自己處理,將前臺(tái)數(shù)據(jù)集中的一列用逗號(hào)拆分存到一個(gè)List中,再轉(zhuǎn)化為字符串傳給存儲(chǔ)過程,很是麻煩。今天看了下SQL Server 2008的新特性,發(fā)現(xiàn)有表變量的使用,及其將DataTable作為參數(shù)的用法,就嘗試了一下,簡(jiǎn)單談?wù)勑牡谩?/p>

一、測(cè)試環(huán)境

1、Windows Server 2008 R2 DataCenter

2、Visual Studio 2008 Team System With SP1

3、SQL Server 2008 Enterprise Edition With SP1

由于是SQL Server 2008新特性,所以只能用2008。

二、測(cè)試概述

測(cè)試項(xiàng)目很簡(jiǎn)單,就是添加新用戶

SQL Server 2008中使用DataTable作為存儲(chǔ)過程的參數(shù)

三、準(zhǔn)備數(shù)據(jù)

建立數(shù)據(jù)庫、表、類型、存儲(chǔ)過程

代碼:

  1. IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Users]') AND type in (N'U'))  
  2. DROP TABLE [dbo].[Users]  
  3. CREATE TABLE [dbo].[Users](  
  4.  [UserID] [int] IDENTITY(-1,-1) NOT NULL,  
  5.  [UserName] [varchar](20) NOT NULL,  
  6.  [UserPass] [varchar](20) NOT NULL,  
  7.  [Sex] [bit] NULL,  
  8.  [Age] [smallint] NULL,  
  9.  CONSTRAINT [PK_Users_UserID] PRIMARY KEY CLUSTERED   
  10. (  
  11. [UserID] ASC  
  12. )WITH (PAD_INDEX  = OFFSTATISTICS_NORECOMPUTE  = OFFIGNORE_DUP_KEY = OFFALLOW_ROW_LOCKS  = ONALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]  
  13. ) ON [PRIMARY]  
  14.  
  15. IF  EXISTS (SELECT * FROM sys.types st JOIN sys.schemas ss ON st.schema_id = ss.schema_id WHERE st.name = N'UserTable' AND ss.name = N'dbo')  
  16. DROP TYPE [dbo].[UserTable]  
  17. CREATE TYPE [dbo].[UserTable] AS TABLE(  
  18.  [UserName] [varchar](20) NOT NULL,  
  19.  [UserPass] [varchar](20) NOT NULL,  
  20.  [Sex] [bit] NULL,  
  21.  [Age] [smallint] NULL  
  22. )  
  23.  
  24. IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_InsertSingleUser]') AND type in (N'P', N'PC'))  
  25. DROP PROCEDURE [dbo].[sp_InsertSingleUser]  
  26. GO  
  27. CREATE PROCEDURE [dbo].[sp_InsertSingleUser]   
  28. (   
  29. @User UserTable READONLY   
  30. )   
  31. AS   
  32. SET XACT_ABORT ON   
  33. BEGIN TRANSACTION   
  34. INSERT INTO dbo.Users(UserName, UserPass, Sex, Age)   
  35. SELECT UserName, UserPass, Sex, Age FROM @User   
  36. COMMIT TRANSACTION   
  37. 前臺(tái)搭建好表單,后臺(tái)主要是一個(gè)函數(shù):  
  38.  
  39. 代碼  
  40.  
  41. public void fnInsertSingleUser(DataTable v_dt)   
  42. {   
  43. try   
  44. {   
  45. SqlConnection cn = new SqlConnection(CONN);   
  46. SqlCommand cmd = cn.CreateCommand();   
  47. cmd.CommandType = CommandType.StoredProcedure;   
  48. cmd.CommandText = @"sp_InsertSingleUser";   
  49. SqlParameter p = cmd.Parameters.AddWithValue("@User", v_dt);   
  50.  
  51. DataSet ds = new DataSet();   
  52. SqlDataAdapter da = new SqlDataAdapter(cmd);   
  53. da.Fill(ds);   
  54. }   
  55. catch (Exception ex)   
  56. {   
  57. throw ex;   
  58. }   

點(diǎn)擊【添加】按鈕時(shí)調(diào)用存儲(chǔ)過程。測(cè)試是完成了,也很簡(jiǎn)單,傳遞一個(gè)DataTable做參數(shù)確實(shí)很方便吧,能夠輕松完成原先需要很多編碼的工 作。關(guān)于表變量還是有些道道的,如創(chuàng)建時(shí)判斷其是否存在的語句,刪除表變量前需要先刪除引用表變量的存儲(chǔ)過程等。

一般開發(fā)我大多會(huì)選擇用臨時(shí)表,處理起來 比較方便,表變量可以作為存儲(chǔ)過程參數(shù)確實(shí)是一個(gè)獨(dú)特的優(yōu)勢(shì),希望在SQL Server的未來版本中能夠繼續(xù)增強(qiáng)對(duì)表變量和臨時(shí)表的支持,尤其是早日支持臨時(shí)表調(diào)試。

關(guān)于SQL Server 2008數(shù)據(jù)庫中使用DataTable作為存儲(chǔ)過程的參數(shù)的相關(guān)知識(shí)就介紹到這里了,希望本次的介紹能夠?qū)δ兴斋@!

【編輯推薦】

  1. SQL Server 2005導(dǎo)入Oracle 10g的C#源碼
  2. SQL Server 2008快速清理日志文件的代碼
  3. SQL Server 2008數(shù)據(jù)庫中CDC的功能使用及說明
  4. SQL Server 2008阻止保存要求重新創(chuàng)建表的更改的問題
  5. SQL Server數(shù)據(jù)庫row_number() over() 來自動(dòng)產(chǎn)生行號(hào)
責(zé)任編輯:趙鵬 來源: 百度空間
相關(guān)推薦

2010-11-12 09:18:13

SQL Server存

2011-09-01 15:24:22

SQL Server 存儲(chǔ)過程調(diào)試

2009-08-04 10:29:06

在C#中使用存儲(chǔ)過程

2010-09-14 10:16:57

sql server

2010-07-15 12:38:14

SQL Server存

2011-08-29 18:02:29

SQL Server FileStream

2011-09-01 17:25:03

SQL Server 查看死鎖存儲(chǔ)過程

2010-07-13 10:35:20

SQL Server2

2011-03-24 13:38:47

SQL Server 存儲(chǔ)分頁

2011-09-01 14:00:11

SQL Server 存儲(chǔ)過程顯示表結(jié)構(gòu)

2011-08-11 09:49:33

SQL Server 存儲(chǔ)過程插入更新數(shù)據(jù)

2021-02-08 11:04:21

嵌套SQL Server語言

2010-10-20 16:17:17

SQL Server角

2011-08-24 16:56:54

OracleArray類型存儲(chǔ)過程

2010-09-06 11:05:05

SQL SERVER語句

2009-08-06 16:44:06

2010-09-27 16:10:42

SQL Server游

2009-04-16 18:15:19

動(dòng)作審核審核活動(dòng)SQL Server

2009-04-16 17:44:31

2009-04-16 17:38:24

SQL Server 空間數(shù)據(jù)智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)