sql >> Databasteknik >  >> RDS >> Sqlserver

Returnerar flera tabeller från en lagrad procedur

Det normala sättet är att få allt på en gång.

bygg bara din SELECT s och du kommer att ha en DataSet fylld med alla tabeller.

using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(myConnString))
{
    using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand())
    {
        cmd.CommandText = "myMultipleTablesSP";
        cmd.Connection = conn;
        cmd.CommandType = CommandType.StoredProcedure;

        conn.Open();

        System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);

        DataSet ds = new DataSet();
        adapter.Fill(ds);

        conn.Close();
    }
}

om du till exempel returnerar 2 tabeller i din SP, som:

SELECT * FROM [TableA];
SELECT * FROM [TableB];

du kommer åt dessa tabeller som:

DataTable tableA = ds.Tables[0];
DataTable tableB = ds.Tables[1];


  1. Schemamönstersökning

  2. docker postgres pgadmin lokal anslutning

  3. Stoppa (lång) körning av SQL-fråga i PostgreSQL när session eller begäranden inte längre existerar?

  4. Multi-Statement TVFs i Dynamics CRM