sql >> データベース >  >> RDS >> Sqlserver

ADO.NET を使用してこの SQL クエリを実行するにはどうすればよいですか?

    サンプル目的で元の SQL を変更して使用しています。

    DECLARE @list AS TABLE (Name VARCHAR(20));INSERT INTO @list(Name)VALUES ('PROCEDURE'), ('FUNCTION');SELECT *FROM INFORMATION_SCHEMA.ROUTINESWHERE ROUTINE_TYPE in (SELECT Name @list から)  

    テーブル値パラメータを使用できます

    SQL Server 2008 (ADO. NET)

     using (SqlConnection cnn =new SqlConnection("Your connection string")) { var tableParam =new DataTable("names"); tableParam.Columns.Add("名前", typeof(文字列)); tableParam.Rows.Add(新しいオブジェクト[] { "手順" }); tableParam.Rows.Add(新しいオブジェクト[] { "FUNCTION')" }); var sql =@"DECLARE @list AS TABLE (Name VARCHAR(20)) INSERT INTO @list(Name) SELECT Name from @Names; SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE in (SELECT Name from @list)"; var sqlCmd =new SqlCommand(sql, cnn); var tvpParam =sqlCmd.Parameters.AddWithValue("@Names", tableParam); tvpParam.SqlDbType =SqlDbType.Structured; tvpParam.TypeName ="dbo.Names"; cnn.Open(); using(SqlDataReader rdr =sqlCmd.ExecuteReader() ) { while (rdr.Read()) Console.WriteLine(rdr["SPECIFIC_NAME"]); } }  

    ただし、動作させる前にタイプ dbo.Names を定義する必要があります

    これが型作成 SQL です

    CREATE TYPE dbo.Names AS TABLE ( Name VARCHAR(Max));  

    もう 1 つのオプションは、XML パラメータ を使用することです。

     using (SqlConnection cnn =new SqlConnection("Your connection string")){ var sql =@"DECLARE @list AS TABLE (Name VARCHAR(20)) INSERT INTO @list(Name) SELECT t.name .value('.', 'varchar(MAX)') FROM @Names.nodes('/Names/Name') as T(Name); SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE in (SELECT Name from @list)"; var sqlCmd =new SqlCommand(sql, cnn); var s =new MemoryStream(ASCIIEncoding.Default.GetBytes("PROCEDUREFUNCTION")); var xmlParam =新しい SqlXml(s); sqlCmd.Parameters.AddWithValue("@Names", xmlParam); cnn.Open(); using(SqlDataReader rdr =sqlCmd.ExecuteReader() ) { while (rdr.Read()) Console.WriteLine(rdr["SPECIFIC_NAME"]); }}  


    1. テーブル内の最新の3つの日付を検索するMySQLクエリ

    2. CentOS 8 /RHEL8にMySQL8.0をインストールする方法

    3. DATETIMEFROMPARTS()SQL Server(T-SQL)の例

    4. Mysqlは特定のテーブルの最後のIDを取得します