Exemple #1
0
        private static void FindNameOnSqlServer(ConnectionProvider provider, string match)
        {
            bool found = false;

            string sql = "SELECT name AS TableName FROM sys.tables";
            var    dt  = new SqlCmd(provider, sql).FillDataTable();

            Search(match, dt, "TableName");
            if (dt.Rows.Count != 0)
            {
                found = true;
                cout.WriteLine(ConsoleColor.Cyan, "Table Names");
                dt.ToConsole();
            }
            ;


            sql = @"
 SELECT 
	s.name as SchemaName,
	t.name as TableName,
    c.name AS ColumnName,
    ty.name AS DataType,
    c.max_length AS Length,
    CASE c.is_nullable WHEN 0 THEN 'NOT NULL' WHEN 1 THEN 'NULL' END AS Nullable
FROM sys.tables t 
     INNER JOIN sys.columns c ON t.object_id = c.object_id 
     INNER JOIN sys.types ty ON ty.system_type_id =c.system_type_id AND ty.name<>'sysname'
     LEFT JOIN sys.Computed_columns d ON t.object_id = d.object_id AND c.name = d.name
	 INNER JOIN sys.schemas s ON s.schema_id=t.schema_id
ORDER BY c.name, c.column_id
";
            dt  = new SqlCmd(provider, sql).FillDataTable();
            Search(match, dt, "ColumnName");
            if (dt.Rows.Count != 0)
            {
                found = true;
                cout.WriteLine(ConsoleColor.Cyan, "Table Columns");
                dt.ToConsole();
            }
            ;


            sql = @"SELECT  SCHEMA_NAME(schema_id) SchemaName, name AS ViewName FROM sys.views ORDER BY name";
            dt  = new SqlCmd(provider, sql).FillDataTable();
            Search(match, dt, "ViewName");
            if (dt.Rows.Count != 0)
            {
                found = true;
                cout.WriteLine(ConsoleColor.Cyan, "View Names");
                dt.ToConsole();
            }

            sql = @"
  SELECT 
	            VCU.TABLE_NAME AS ViewName, 
	            COL.COLUMN_NAME AS ColumnName,
	            COL.DATA_TYPE,
	            COL.IS_NULLABLE
            FROM INFORMATION_SCHEMA.VIEW_COLUMN_USAGE AS VCU
	            JOIN INFORMATION_SCHEMA.COLUMNS AS COL
	            ON  COL.TABLE_SCHEMA  = VCU.TABLE_SCHEMA
	            AND COL.TABLE_CATALOG = VCU.TABLE_CATALOG
	            AND COL.TABLE_NAME    = VCU.TABLE_NAME
	            AND COL.COLUMN_NAME   = VCU.COLUMN_NAME"    ;

            dt = new SqlCmd(provider, sql).FillDataTable();
            Search(match, dt, "ColumnName");
            if (dt.Rows.Count != 0)
            {
                found = true;
                cout.WriteLine(ConsoleColor.Cyan, "View Columns");
                dt.ToConsole();
            }

            if (!found)
            {
                cout.WriteLine("nothing is found");
            }
        }