zoukankan      html  css  js  c++  java
  • SQL存储过程直接传表

    将数据表传递给SQL Server中的存储过程

    创建一个表:

    1 CREATE TABLE dbo.TestTableVariable
    2 (
    3     ID        INT IDENTITY(1,1)    primary key,
    4     Name    VARCHAR(10),
    5     Addr    VARCHAR(10)
    6 )

    创建需要传的表:

    1 CREATE TYPE dbo.TableVariable AS TABLE
    2 (
    3     ID        INT
    4 )

    插入一些默认数据:

    1 INSERT INTO dbo.TestTableVariable VALUES ('aaa', 'addr-aaa')
    2 INSERT INTO dbo.TestTableVariable VALUES ('bbb', 'addr-bbb')
    3 INSERT INTO dbo.TestTableVariable VALUES ('ccc', 'addr-ccc')
    4 INSERT INTO dbo.TestTableVariable VALUES ('ddd', 'addr-ddd')

    创建具有表变量作为参数的存储过程:

     1 SET ANSI_NULLS ON
     2 GO
     3 SET QUOTED_IDENTIFIER ON
     4 GO
     5 CREATE PROCEDURE dbo.SelectTestTableVariable
     6 (
     7     @TableVar dbo.TableVariable READONLY
     8 )
     9 AS
    10 BEGIN
    11     SET NOCOUNT ON;
    12     
    13     SELECT ID, Name, Addr FROM dbo.TestTableVariable
    14     WHERE ID IN (SELECT ID FROM @TableVar)
    15         
    16 END
    17 GO

    这是控制台应用程序的C#代码:

     1 static void Main(string[] args)
     2 {
     3     DataSet dataset = new DataSet();
     4     DataTable dataTable = new DataTable();
     5     dataTable.Columns.Add("ID");
     6     var dr = dataTable.NewRow();
     7     dr["ID"] = 1;
     8     dataTable.Rows.Add(dr);
     9     using (SqlConnection conn = new SqlConnection(
    10       @"Data Source=.SqlExpress;Initial Catalog=Work;Integrated Security=True;"))
    11     {
    12         conn.Open();       
    13         using (SqlCommand cmd = new SqlCommand("[dbo].[SelectTestTableVariable]"))
    14         {
    15             cmd.CommandType = CommandType.StoredProcedure;
    16             cmd.Connection = conn;
    17             cmd.Parameters.AddWithValue("@TableVar", dataTable);
    18             using (SqlDataAdapter adp = new SqlDataAdapter(cmd))
    19             {
    20                 adp.Fill(dataset);
    21             }
    22         }
    23     }
    24 }
  • 相关阅读:
    Gram 矩阵性质及应用
    Gram 矩阵性质及应用
    经典公开课、好的学习网站
    经典公开课、好的学习网站
    机器学习、深度学习经典课程
    机器学习、深度学习经典课程
    机器学习竞赛(代码)
    机器学习竞赛(代码)
    数学类网站、代码(Matlab & Python & R)
    数学类网站、代码(Matlab & Python & R)
  • 原文地址:https://www.cnblogs.com/weifeng123/p/12615668.html
Copyright © 2011-2022 走看看