Advertisement
OmicronTau

CLR stored procedure to search all table and all columns.

Sep 24th, 2017
2,605
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 61.70 KB | None | 0 0
  1. /*
  2.     This script creates a CLR stored procedure and its assembly on a database that will let you search for
  3.     keywords separated by a space on all columns of all tables of all types except 'binary', 'varbinary', 'bit',
  4.     'timestamp', 'image', 'sql_variant', and 'hierarchyid'. This was made as a CLR stored proc to take advantage
  5.     of explicit parallelism to make the search a lot faster. Be aware that this will use many cores so only use
  6.     this for occasional DBA work. This has the potential to cause a DDoS type of situation if broad searches with
  7.     many results are hammered into the server, since each request can try to parallelize its search. An optional
  8.     parameter exists to limit parallelism to a set number of cores. You can also set filters on the tables or
  9.     columns to search, including logical operators OR, AND, NOT, and parenthesis (see examples below). Results
  10.     are returned as XML rows.
  11.  
  12.     To install you need owner rights. Also, because SQL Server doesn't allow secondary CLR threads access to
  13.     the stored procedure context, we extract the connection string from the first context connection we make.
  14.     This works fine, but only if you are connected with a trusted connection (using a Windows account).
  15.  
  16.     ------------------------------------------------------------------
  17.     -- CLR access must be enabled on the instance for this to work. --
  18.     ------------------------------------------------------------------
  19.     -- sp_configure 'show advanced options', 1;                     --
  20.     -- GO                                                           --
  21.     -- RECONFIGURE;                                                 --
  22.     -- GO                                                           --
  23.     -- sp_configure 'clr enabled', 1;                               --
  24.     -- GO                                                           --
  25.     -- RECONFIGURE;                                                 --
  26.     -- GO                                                           --
  27.     ------------------------------------------------------------------
  28.  
  29.     -----------------------------------------------------------------------------------
  30.     -- Database need to be flagged thrustworthy to be able to access CLR assemblies. --
  31.     -----------------------------------------------------------------------------------
  32.     -- ALTER DATABASE [AdventureWorks] SET TRUSTWORTHY ON;                           --
  33.     -----------------------------------------------------------------------------------
  34.  
  35.     Example usages:
  36.     ---------------
  37.     Using all available processors on the server:
  38.         EXEC [dbo].[SearchAllTables] @valueSearchTerm = 'john michael'
  39.  
  40.     Limiting the server to 4 concurrent threads:
  41.         EXEC [dbo].[SearchAllTables] @valueSearchTerm = 'john michael', @maxDegreeOfParallelism = 4
  42.  
  43.     Using logical operators in search terms:
  44.         EXEC [dbo].[SearchAllTables] @valueSearchTerm = '(john or michael) and not jack', @tablesSearchTerm = 'not contact'
  45.  
  46.     Limiting search to table names and/or column names containing some search terms:
  47.         EXEC [dbo].[SearchAllTables] @valueSearchTerm = 'john michael', @tablesSearchTerm = 'person contact', @columnsSearchTerm = 'address name'
  48.  
  49.     Limiting search results to the first row of each table where the terms are found:
  50.         EXEC [dbo].[SearchAllTables] @valueSearchTerm = 'john michael', @getOnlyFirstRowPerTable = 1
  51.  
  52.     Limiting the search to the schema only automatically returns only the first row for each table:
  53.         EXEC [dbo].[SearchAllTables] @tablesSearchTerm = 'person contact'
  54.  
  55.     Only return the search queries:
  56.         EXEC [dbo].[SearchAllTables] @valueSearchTerm = 'john michael', @tablesSearchTerm = 'person contact', @onlyOutputQueries = 1
  57.  
  58.     Capturing results into temporary table and sorting:
  59.         CREATE TABLE #temp (Result NVARCHAR(MAX));
  60.         INSERT INTO #temp
  61.             EXEC [dbo].[SearchAllTables] @valueSearchTerm = 'john';
  62.         SELECT * FROM #temp ORDER BY Result ASC;
  63.         DROP TABLE #temp;
  64.  
  65.  
  66.     Source code of the CLR assembly:
  67.     --------------------------------
  68.     using System;
  69.     using System.Data;
  70.     using System.Data.SqlClient;
  71.     using System.Collections.Concurrent;
  72.     using System.Threading.Tasks;
  73.     using System.Xml;
  74.     using Microsoft.SqlServer.Server;
  75.  
  76.     public partial class StoredProcedures
  77.     {
  78.         [SqlProcedure]
  79.         public static void SearchAllTables(string valueSearchTerms = "",
  80.                                            string tablesSearchTerms = "",
  81.                                            string columnsSearchTerms = "",
  82.                                            bool getOnlyFirstRowPerTable = false,
  83.                                            int maxDegreeOfParallelism = 0,
  84.                                            bool onlyOutputQueries = false)
  85.         {
  86.             var qGetTables = @"SELECT QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) AS TableName "
  87.                            + @"FROM INFORMATION_SCHEMA.TABLES "
  88.                            + @"WHERE TABLE_TYPE = 'BASE TABLE' "
  89.                            + @"  AND OBJECTPROPERTY(OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)), 'IsMSShipped') = 0 ";
  90.  
  91.             if (!string.IsNullOrWhiteSpace(tablesSearchTerms))
  92.                 qGetTables += @"  AND ( " + GetFormattedSearchTerms(tablesSearchTerms, "TABLE_NAME + TABLE_SCHEMA") + " ) ";
  93.  
  94.             var qGetColumns = @"SELECT QUOTENAME(COLUMN_NAME) AS ColName "
  95.                             + @"FROM INFORMATION_SCHEMA.COLUMNS "
  96.                             + @"WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2) "
  97.                             + @"  AND TABLE_NAME = PARSENAME(@TableName, 1) "
  98.                             + @"  AND DATA_TYPE NOT IN ('binary', 'varbinary', 'bit', 'timestamp', 'image', 'sql_variant', 'hierarchyid') ";
  99.  
  100.             if (!string.IsNullOrWhiteSpace(columnsSearchTerms))
  101.                 qGetColumns += @"  AND ( " + GetFormattedSearchTerms(columnsSearchTerms, "COLUMN_NAME") + " ) ";
  102.  
  103.             var qTopOne = (getOnlyFirstRowPerTable || string.IsNullOrWhiteSpace(valueSearchTerms)) ? "TOP 1" : "";
  104.  
  105.             var connectionString = "";
  106.             var qGetConnStr = @"SELECT 'Server=' + @@SERVERNAME + ';Database=' + DB_NAME() + ';Trusted_Connection=True;Enlist=False;'";
  107.  
  108.             var dtTables = new DataTable();
  109.             using (var conn = new SqlConnection("context connection=true"))
  110.             {
  111.                 conn.Open();
  112.                 connectionString = (new SqlCommand(qGetConnStr, conn)).ExecuteScalar().ToString();
  113.                 using (var cmd = new SqlCommand(qGetTables, conn))
  114.                 {
  115.                     using (var adapter = new SqlDataAdapter(cmd))
  116.                         adapter.Fill(dtTables);
  117.                 }
  118.             }
  119.  
  120.             var subQueryResults = new ConcurrentBag<string>();
  121.  
  122.             Parallel.ForEach(
  123.                 dtTables.Select(),
  124.                 new ParallelOptions()
  125.                 {
  126.                     MaxDegreeOfParallelism = (maxDegreeOfParallelism == 0) ? Environment.ProcessorCount : maxDegreeOfParallelism
  127.                 },
  128.                 row =>
  129.                 {
  130.                     var tableName = row[0].ToString();
  131.  
  132.                     using (var conn = new SqlConnection(connectionString))
  133.                     {
  134.                         conn.Open();
  135.                         var whereClause = "";
  136.                         using (var cmd = new SqlCommand(qGetColumns.Replace("@TableName", $@"'{tableName}'"), conn))
  137.                         {
  138.                             using (var reader = cmd.ExecuteReader())
  139.                             {
  140.                                 while (reader.Read())
  141.                                     whereClause += $@"ISNULL(CONVERT(NVARCHAR(MAX), {reader.GetSqlString(0).Value}), '') + ";
  142.  
  143.                                 whereClause += " ''";
  144.                             }
  145.                         }
  146.  
  147.                         if (whereClause != " ''")
  148.                         {
  149.                             var formattedTerms = (!string.IsNullOrWhiteSpace(valueSearchTerms)) ? $@"WHERE ( {GetFormattedSearchTerms(valueSearchTerms, whereClause)} )" : "";
  150.                             var fullQuery = $@"SELECT {qTopOne} * FROM {tableName} {formattedTerms} FOR XML AUTO;";
  151.  
  152.                             if (onlyOutputQueries)
  153.                             {
  154.                                 subQueryResults.Add($@"<Query>{fullQuery}</Query>");
  155.                             }
  156.                             else
  157.                             {
  158.                                 using (var cmd = new SqlCommand(fullQuery, conn))
  159.                                 {
  160.                                     var cmdRes = "";
  161.                                     using (var reader = cmd.ExecuteReader())
  162.                                     {
  163.                                         while (reader.Read())
  164.                                             cmdRes += reader.GetSqlString(0).Value;
  165.  
  166.                                         if (cmdRes != "")
  167.                                         {
  168.                                             var xmldoc = new XmlDocument();
  169.                                             xmldoc.LoadXml("<doc>" + cmdRes + "</doc>");
  170.                                             var nodes = xmldoc.SelectNodes("(//doc/*)");
  171.                                             foreach (XmlNode node in nodes) subQueryResults.Add(node.OuterXml);
  172.                                         }
  173.                                     }
  174.                                 }
  175.                             }
  176.                         }
  177.                     }
  178.                 });
  179.  
  180.             var recmeta = new SqlMetaData("FoundRow", SqlDbType.NVarChar, SqlMetaData.Max);
  181.             var rec = new SqlDataRecord(recmeta);
  182.  
  183.             SqlContext.Pipe.SendResultsStart(rec);
  184.             foreach (var qres in subQueryResults.ToArray())
  185.             {
  186.                 rec.SetString(0, qres);
  187.                 SqlContext.Pipe.SendResultsRow(rec);
  188.             }
  189.             SqlContext.Pipe.SendResultsEnd();
  190.         }
  191.  
  192.  
  193.         private static string GetFormattedSearchTerms(string terms, string fields)
  194.         {
  195.             var formattedTerms = "";
  196.             if (!string.IsNullOrWhiteSpace(terms) && !string.IsNullOrWhiteSpace(fields))
  197.             {
  198.                 var operatorNeeded = false;
  199.                 foreach (var searchTerm in terms.Replace("(", " ( ").Replace(")", " ) ").Split(' '))
  200.                 {
  201.                     var thisTerm = searchTerm.ToUpper();
  202.  
  203.                     if (   thisTerm == "OR"
  204.                         || thisTerm == "AND"
  205.                         || thisTerm == "NOT"
  206.                         || thisTerm == "("
  207.                         || thisTerm == ")")
  208.                     {
  209.                         formattedTerms += thisTerm + " ";
  210.                         operatorNeeded = false;
  211.                     }
  212.                     else
  213.                     {
  214.                         if (!string.IsNullOrWhiteSpace(searchTerm))
  215.                         {
  216.                             if (operatorNeeded) formattedTerms += "OR ";
  217.                             formattedTerms += $@"( {fields} LIKE '%{searchTerm}%' ) ";
  218.                             operatorNeeded = true;
  219.                         }
  220.                     }
  221.                 }
  222.             }
  223.             return formattedTerms;
  224.         }
  225.  
  226.     }
  227. */*/
  228.  
  229. SET ANSI_NULLS, ANSI_PADDING, ANSI_WARNINGS, ARITHABORT, CONCAT_NULL_YIELDS_NULL, QUOTED_IDENTIFIER ON;
  230. SET NUMERIC_ROUNDABORT OFF;
  231. GO
  232.  
  233. PRINT N'Removing previous versions...';
  234. GO
  235.  
  236. DROP PROCEDURE [dbo].[SearchAllTables]
  237. DROP ASSEMBLY [SearchAllTables]
  238. GO
  239.  
  240. PRINT N'Adding CLR assembly [SearchAllTables]...';
  241. GO
  242.  
  243. CREATE ASSEMBLY [SearchAllTables]
  244.     AUTHORIZATION [dbo]
  245.     FROM 0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C01030011B0C9590000000000000000E00022200B013000001C00000006000000000000423B0000002000000040000000000010002000000002000004000000000000000400000000000000008000000002000000000000030040850000100000100000000010000010000000000000100000000000000000000000F03A00004F00000000400000C002000000000000000000000000000000000000006000000C000000B83900001C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002E74657874000000481B000000200000001C000000020000000000000000000000000000200000602E72737263000000C00200000040000000040000001E0000000000000000000000000000400000402E72656C6F6300000C0000000060000000020000002200000000000000000000000000004000004200000000000000000000000000000000243B0000000000004800000002000500902600002813000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001B300500F50100000100001173040000060A06027D03000004060E057D050000040072010000700B03280600000A16FE01130611062C1C0772EA0100700372FC01007028020000067230020070280700000A0B0672380200707D0200000404280600000A16FE01130711072C2606067B0200000472EA01007004725504007028020000067230020070280700000A7D0200000406052D14067B03000004280600000A2D07726D0400702B05726F0400707D0400000406726D0400707D01000004727B0400700C730800000A0D7248050070730900000A13080011086F0A00000A0006081108730B00000A6F0C00000A6F0D00000A7D01000004071108730B00000A1309001109730E00000A130A110A096F0F00000A26DE0D110A2C08110A6F1000000A00DC00DE0D11092C0811096F1000000A00DC00DE0D11082C0811086F1000000A00DC06731100000A7D06000004096F1200000A731300000A250E042C040E042B05281400000A6F1500000A0006FE0605000006731600000A280100002B2672780500701F0C281800000A731900000A1304178D0800000125161104A2731A00000A1305281B00000A11056F1C00000A0000067B060000046F1D00000A130B16130C2B27110B110C9A130D00110516110D6F1E00000A00281B00000A11056F1F00000A0000110C1758130C110C110B8E6932D1281B00000A6F2000000A002A00000001280000020001010B0C010D000000000200F700251C010D000000000200CC00602C010D0000000013300500260100000200001100726D0400700A02280600000A2D0B03280600000A16FE012B01160B0739FC00000000160C0002728A050070728E0500706F2100000A729605007072300200706F2100000A178D2400000125161F209D6F2200000A0D16130438B50000000911049A13050011056F2300000A13061106729A050070282400000A2D38110672A0050070282400000A2D2A110672A8050070282400000A2D1C1106728A050070282400000A2D0E11067296050070282400000A2B0117130711072C140006110672B0050070282500000A0A160C002B3D001105280600000A16FE01130811082C2B0008130911092C0C0672B4050070282600000A0A0672BC050070031105282700000A282600000A0A170C0000001104175813041104098E693F41FFFFFF0006130A2B00110A2A2202282800000A002A001B30040037020000030000110003166F2900000A6F0D00000A0A027B01000004730900000A0B00076F0A00000A00726D0400700C027B0200000472E805007072FE05007006282A00000A6F2100000A07730B00000A0D00096F2B00000A1304002B2208720A0600701104166F2C00000A13051205282D00000A282A00000A282600000A0C11046F2E00000A130611062DD1087260060070282600000A0C00DE0D11042C0811046F1000000A00DC00DE0B092C07096F1000000A00DC087260060070282F00000A13071107396501000000027B03000004280600000A2C07726D0400702B167268060070027B03000004082802000006282A00000A13087284060070027B04000004061108283000000A1309027B05000004130A110A2C1F00027B0600000472D40600701109282A00000A6F3100000A000038F700000000110907730B00000A130B00726D040070130C110B6F2B00000A130D002B1A110C110D166F2C00000A13051205282D00000A282600000A130C110D6F2E00000A130E110E2DD9110C726D040070282F00000A130F110F2C7E00733200000A1310111072FA060070110C7206070070282500000A6F3300000A00111072140700706F3400000A13110011116F3500000A13122B2111126F3600000A74150000011313027B0600000411136F3700000A6F3100000A0011126F3800000A2DD6DE1611127516000001131411142C0811146F1000000A00DC0000DE0D110D2C08110D6F1000000A00DC00DE0D110B2C08110B6F1000000A00DC000000DE0B072C07076F1000000A00DC2A0041940000020000005300000041000000940000000D00000000000000020000004A0000005A000000A40000000B0000000000000002000000C10100002E000000EF0100001600000000000000020000004C010000BD000000090200000D00000000000000020000003B010000DE000000190200000D00000000000000020000001A000000110200002B0200000B0000000000000042534A4201000100000000000C00000076342E302E33303331390000000005006C00000014040000237E000080040000C805000023537472696E677300000000480A000028070000235553007011000010000000234755494400000080110000A801000023426C6F620000000000000002000001571D0208090A000000FA01330016000001000000250000000300000006000000050000000900000038000000060000000500000003000000020000000100000004000000010000000100000000001E020100000000000600940182030600B401820306006A0168030F00A20300000600BD0460020A007E012D030A00F6005C000A0068002D030A00C5002D030A00AB02E4040A00BA00E4040A001E03E40406004F0182030E003A001E050A0080055C000A00EC02E4040A00DF01DF03120006053702120060053702060048037C041200EE0037020600180160020600060260020A009E02B9020A00B000B9020A001003B90206008F0405040600FA04600206004A0060020600150205040600D104050406002C007D000A003D015C000A0075052D030A0035012D030600CC0260020A00DF02B902000000005300000000000100010001001000F403000015000100010003011000010000001500010004000600E90155010600700455010600340455010600240155010600BD03580106009F045B015020000000009600CF03620101007C220000000091001C04E2000700AE23000000008618620306000900AE23000000008618620306000900B82300000000830016006C01090010100100340410100200450410100300570410100400000110100500820210100600BD03000001006A04000002007B03000001009705090062030100110062030600190062030A00310062030600690062030600B900DB002900B900AF042E00390062030600510062033600C10099020600590062033B00C900D10242002900FA014600610062034A00D10032025000B100470106000C00620306003900C4045C00D90062030600E1003C056200D90067020100140062036D00F1000D02730041009B058D00410062039100490062039A0011012C01A10019014F05A7000C00A305AD0049000302B30019018805A7001901A1000600B900D300C800B900CB04CE00B90008034600B900AB05D500B900AF04DB00B900AF04E200B900B604E800290062030600790057021201B900B60417015900FA021D018100DC0122018900D2014600290198002801B900B705D500B900B6042C010C009D003401910062030600910042023600A900B1033A01990054034001A10012054200A9004A024600A1006C0528010E00050000000E00090000000E000D000000020011004E01080015005001020019004E0120002300A3012E000B0072012E0013007B012E001B009A0163002B00A3011000B900EF0056006600048000000000000000000000000000000000CF030000040000000000000000000000450174000000000004000000000000000000000045015C000000000004000000000000000000000045016002000000000400000000000000000000004501370200000000030002002F00880000000000003C3E635F5F446973706C6179436C617373305F30003C536561726368416C6C5461626C65733E625F5F300049456E756D657261626C65603100436F6E63757272656E74426167603100416374696F6E6031003C4D6F64756C653E0053797374656D2E446174610053716C4D65746144617461006D73636F726C69620053797374656D2E436F6C6C656374696F6E732E47656E657269630052656164004164640053656E64526573756C7473456E64004462436F6D6D616E640053716C436F6D6D616E640053716C446174615265636F7264005265706C6163650049734E756C6C4F725768697465537061636500586D6C4E6F646500446174615461626C65006765744F6E6C794669727374526F775065725461626C650049446973706F7361626C650071546F704F6E65006765745F506970650053716C506970650053716C44625479706500446973706F736500436F6D70696C657247656E6572617465644174747269627574650044656275676761626C654174747269627574650053716C50726F63656475726541747472696275746500436F6D70696C6174696F6E52656C61786174696F6E734174747269627574650052756E74696D65436F6D7061746962696C697479417474726962757465006765745F56616C75650047657453716C537472696E6700636F6E6E656374696F6E537472696E6700546F537472696E6700536574537472696E6700466F724561636800506172616C6C656C00536561726368416C6C5461626C65732E646C6C0046696C6C0053797374656D2E586D6C004C6F6164586D6C006765745F4F75746572586D6C006765745F4974656D0053797374656D007365745F4D61784465677265654F66506172616C6C656C69736D006D61784465677265654F66506172616C6C656C69736D004F70656E004462436F6E6E656374696F6E0053716C436F6E6E656374696F6E0053797374656D2E446174612E436F6D6D6F6E004368617200457865637574655363616C6172004462446174615265616465720053716C44617461526561646572004578656375746552656164657200546F557070657200446244617461416461707465720053716C4461746141646170746572004D6963726F736F66742E53716C5365727665722E5365727665720049456E756D657261746F7200476574456E756D657261746F72002E63746F720053797374656D2E446961676E6F7374696373006669656C64730053797374656D2E52756E74696D652E436F6D70696C6572536572766963657300446562756767696E674D6F6465730053656C6563744E6F646573006F6E6C794F75747075745175657269657300536561726368416C6C5461626C65730053797374656D2E446174612E53716C54797065730053746F72656450726F636564757265730053797374656D2E546872656164696E672E5461736B7300476574466F726D61747465645365617263685465726D730076616C75655365617263685465726D73007461626C65735365617263685465726D7300636F6C756D6E735365617263685465726D73007465726D730071476574436F6C756D6E730053797374656D2E436F6C6C656374696F6E7300506172616C6C656C4F7074696F6E73007375625175657279526573756C747300436F6E63617400466F726D6174004F626A6563740053656C6563740053706C697400506172616C6C656C4C6F6F70526573756C740053797374656D2E446174612E53716C436C69656E7400456E7669726F6E6D656E7400586D6C446F63756D656E74006765745F43757272656E740053797374656D2E436F6C6C656374696F6E732E436F6E63757272656E74006765745F50726F636573736F72436F756E740053656E64526573756C7473537461727400586D6C4E6F64654C697374004D6F76654E6578740053716C436F6E746578740044617461526F770053656E64526573756C7473526F7700726F77006765745F4D617800546F4172726179006F705F457175616C697479006F705F496E657175616C697479000000000081E7530045004C004500430054002000510055004F00540045004E0041004D00450028005400410042004C0045005F0053004300480045004D004100290020002B00200027002E00270020002B002000510055004F00540045004E0041004D00450028005400410042004C0045005F004E0041004D004500290020004100530020005400610062006C0065004E0061006D0065002000460052004F004D00200049004E0046004F0052004D004100540049004F004E005F0053004300480045004D0041002E005400410042004C004500530020005700480045005200450020005400410042004C0045005F00540059005000450020003D0020002700420041005300450020005400410042004C004500270020002000200041004E00440020004F0042004A00450043005400500052004F005000450052005400590028004F0042004A004500430054005F00490044002800510055004F00540045004E0041004D00450028005400410042004C0045005F0053004300480045004D004100290020002B00200027002E00270020002B002000510055004F00540045004E0041004D00450028005400410042004C0045005F004E0041004D004500290029002C0020002700490073004D00530053006800690070007000650064002700290020003D0020003000200001112000200041004E00440020002800200000335400410042004C0045005F004E0041004D00450020002B0020005400410042004C0045005F0053004300480045004D004100000720002900200000821B530045004C004500430054002000510055004F00540045004E0041004D004500280043004F004C0055004D004E005F004E0041004D0045002900200041005300200043006F006C004E0061006D0065002000460052004F004D00200049004E0046004F0052004D004100540049004F004E005F0053004300480045004D0041002E0043004F004C0055004D004E00530020005700480045005200450020005400410042004C0045005F0053004300480045004D00410020003D002000500041005200530045004E0041004D004500280040005400610062006C0065004E0061006D0065002C0020003200290020002000200041004E00440020005400410042004C0045005F004E0041004D00450020003D002000500041005200530045004E0041004D004500280040005400610062006C0065004E0061006D0065002C0020003100290020002000200041004E004400200044004100540041005F00540059005000450020004E004F005400200049004E00200028002700620069006E0061007200790027002C0020002700760061007200620069006E0061007200790027002C002000270062006900740027002C0020002700740069006D0065007300740061006D00700027002C002000270069006D0061006700650027002C0020002700730071006C005F00760061007200690061006E00740027002C002000270068006900650072006100720063006800790069006400270029002000011743004F004C0055004D004E005F004E0041004D0045000001000B54004F005000200031000080CB530045004C00450043005400200027005300650072007600650072003D00270020002B002000400040005300450052005600450052004E0041004D00450020002B00200027003B00440061007400610062006100730065003D00270020002B002000440042005F004E0041004D0045002800290020002B00200027003B0054007200750073007400650064005F0043006F006E006E0065006300740069006F006E003D0054007200750065003B0045006E006C006900730074003D00460061006C00730065003B002700012F63006F006E007400650078007400200063006F006E006E0065006300740069006F006E003D007400720075006500001146006F0075006E00640052006F0077000003280000072000280020000003290000054F005200000741004E00440000074E004F0054000003200000074F0052002000002B280020007B0030007D0020004C0049004B0045002000270025007B0031007D0025002700200029002000011540005400610062006C0065004E0061006D006500000B27007B0030007D0027000155490053004E0055004C004C00280043004F004E00560045005200540028004E00560041005200430048004100520028004D004100580029002C0020007B0030007D0029002C00200027002700290020002B0020000107200027002700011B570048004500520045002000280020007B0030007D0020002900004F530045004C0045004300540020007B0030007D0020002A002000460052004F004D0020007B0031007D0020007B0032007D00200046004F005200200058004D004C0020004100550054004F003B0000253C00510075006500720079003E007B0030007D003C002F00510075006500720079003E00000B3C0064006F0063003E00000D3C002F0064006F0063003E00001328002F002F0064006F0063002F002A002900001C76B298B37FB4468DA6F6C0DB3324220004200101080320000105200101111118070E120C0E0E121D1221122502021229122D12311D0E080E040001020E0700040E0E0E0E0E042001010E062002010E12290320001C0320000E05200101122D05200108121D05151239010E0520001D123D030000080615127501123D052002011C1814100103117D15128081011E00126D151275011E00040A01123D0300000A082003010E1180850A062001011D122105000012808D0520010112250520001D130005200201080E0E070B0E02021D0E080E0E0202020E0520020E0E0E0620011D0E1D03050002020E0E0600030E0E0E0E0500020E0E0E0600030E0E1C1C2207150E12290E122D1241114502020E0E02122D0E124102021249124D1251125512590420011C080500020E0E1C0420001241052001114508032000020700040E0E1C1C1C052001011300052001124D0E042000125108B77A5C561934E0890100040000000002060E0206020606151239010E090006010E0E0E02080205200101123D0801000800000000001E01000100540216577261704E6F6E457863657074696F6E5468726F77730108010007010000000004010000000000000010B0C95900000000020000001C010000D4390000D41B0000525344532DF3C1C3EEAB93438D695BAD448D6FF501000000433A5C55736572735C4875676F5C536F757263655C5265706F735C4461746162617365315C4461746162617365315C6F626A5C44656275675C536561726368416C6C5461626C65732E70646200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000183B00000000000000000000323B0000002000000000000000000000000000000000000000000000243B0000000000000000000000005F436F72446C6C4D61696E006D73636F7265652E646C6C0000000000FF25002000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100100000001800008000000000000000000000000000000100010000003000008000000000000000000000000000000100000000004800000058400000640200000000000000000000640234000000560053005F00560045005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000000000000000000000000000000003F000000000000000400000002000000000000000000000000000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000000B004C4010000010053007400720069006E006700460069006C00650049006E0066006F000000A001000001003000300030003000300034006200300000002C0002000100460069006C0065004400650073006300720069007000740069006F006E000000000020000000300008000100460069006C006500560065007200730069006F006E000000000030002E0030002E0030002E003000000048001400010049006E007400650072006E0061006C004E0061006D006500000053006500610072006300680041006C006C005400610062006C00650073002E0064006C006C0000002800020001004C006500670061006C0043006F0070007900720069006700680074000000200000005000140001004F0072006900670069006E0061006C00460069006C0065006E0061006D006500000053006500610072006300680041006C006C005400610062006C00650073002E0064006C006C000000340008000100500072006F006400750063007400560065007200730069006F006E00000030002E0030002E0030002E003000000038000800010041007300730065006D0062006C0079002000560065007200730069006F006E00000030002E0030002E0030002E0030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000C000000443B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  246.     WITH PERMISSION_SET = UNSAFE;
  247. GO
  248.  
  249. PRINT N'Adding CLR assembly debug information...';
  250. GO
  251.  
  252. ALTER ASSEMBLY [SearchAllTables]
  253.     DROP FILE ALL
  254.     ADD FILE FROM 0x4D6963726F736F667420432F432B2B204D534620372E30300D0A1A445300000000020000020000001F0000009C000000000000001D000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF380000C0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0BCA3101380000000010000000100000000000000F00FFFF04000000FFFF03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA3101380000000010000000100000000000001000FFFF04000000FFFF0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000942E310110B0C959010000002DF3C1C3EEAB93438D695BAD448D6FF500000000000000000100000001000000000000000000000000000000DC51330100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA310138000000001000000010000000000000FFFFFFFF04000000FFFF030000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000BCA310138000000001000000010000000000000FFFFFFFF04000000FFFF030000000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F862513FC607D311905300C04FA302A1C4454B99E9E6D211903F00C04FA302A10B9D865A1166D311BD2A0000F80849BDEC1618FF5EAA104D87F76F49638334601400000000000000238A4517FAE5E8D13258F38EBE7FDB024D3412E50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000520500000000000052050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FEEFFEEF010000008600000000433A5C55736572735C4875676F5C536F757263655C5265706F735C4461746162617365315C4461746162617365315C536561726368416C6C5461626C65732E63730000633A5C75736572735C6875676F5C736F757263655C7265706F735C6461746162617365315C6461746162617365315C736561726368616C6C7461626C65732E6373000400000043000000000000000100000044000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001BE230018000000064B962716836D301010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000200000001000000010000000000000044000000280000001BE23001D49FB66E5C000000010000004300000044000000650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000003A002A11000000000C03000000000000F5010000000000000000000001000006000000000100000000536561726368416C6C5461626C657300000000160003110400000098020000F501000000000000010000000A0024115553797374656D00120024115553797374656D2E44617461000000001A0024115553797374656D2E446174612E53716C436C69656E740000220024115553797374656D2E436F6C6C656374696F6E732E436F6E63757272656E7400001A0024115553797374656D2E546872656164696E672E5461736B73000E0024115553797374656D2E586D6C001E002411554D6963726F736F66742E53716C5365727665722E5365727665720022002011000000000100001100000000000000004353243C3E385F5F6C6F63616C7330001E00201101000000010000110000000000000000714765745461626C657300001E0020110200000001000011000000000000000071476574436F6E6E537472001E0020110300000001000011000000000000000064745461626C6573000000001A002011040000000100001100000000000000007265636D6574610016002011050000000100001100000000000000007265630016000311400000005C02000079000000C0000000010000001A00201108000000010000110000000000000000636F6E6E0000000016000311BC010000580200003C000000ED000000010000001600201109000000010000110000000000000000636D640016000311F00100005402000021000000F8000000010000001A0020110A000000010000110000000000000000616461707465720002000600020006000200060016000311400000009402000021000000BA010000010000001A0020110D000000010000110000000000000000717265730000000002000600020006006E000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004030000040000000C0000000100070004060000300000001F0101100185240185AB01922201927B02817A0283DD0185DB0186AD0187000792D80992D80192D804070001100000000101010188C602000200060042002A1100000000A40400000000000026010000000000000000000002000006F50100000100000000476574466F726D61747465645365617263685465726D730000000016000311100300004804000026010000F5010000010000002200201100000000020000110000000000000000666F726D61747465645465726D730000160003115403000044040000FC000000170200000100000022002011020000000200001100000000000000006F70657261746F724E65656465640000160003119003000040040000AF00000053020000010000001E002011050000000200001100000000000000007365617263685465726D000016000311CC0300003C040000A900000059020000010000001E00201106000000020000110000000000000000746869735465726D000000000200060002000600020006000200060056000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004020000040100000C0000000100000604060002280000000110022E0180970780BC0980BC0180BC0181350281690282EE02834A1601000002000600F20000004C0200000000000001000100F5010000000000002F0000004002000000000000EEEFFE80150000001200008016000000130000831C0000001800008027000000EEEFFE802B00000019000080470000001B00008452000000210000805D000000EEEFFE8061000000220000808700000024000080A900000026000080B400000027000080BA00000029000080C00000002A000080CC0000002B000080CD0000002C000080D50000002D000080ED0000002E000080F70000002F000080F80000003000008001010000310000800C010000EEEFFE8018010000EEEFFE8019010000320000801C010000EEEFFE8028010000EEEFFE8029010000330000802C010000EEEFFE8038010000EEEFFE80390100003500008044010000370000B8750100007100008088010000720000809A01000074000080A701000075000080A801000075000080B8010000EEEFFE80BA01000075000080C101000076000080C201000077000080CD01000078000080DA01000079000080DB010000EEEFFE80E101000075000080E90100007A000080F40100007B00008000000000050006000900880009003B00000000000D0079000900890009003C00000000000D006D0009006F000900230009008400090028001000470009000A000D0019000D005F0014003E000D000E0018003D0015002C0000000000000000000D000E00000000000000000009000A00000000000000000009003B00090010000900580009002E0009002F00090010001E0037000000000012001A0009000A000D0024000D00310009000A00000000001B001D0009002A0005000600F2000000BC010000F501000001000100260100000000000023000000B0010000000000007F000080010000008000008007000000810000801C000000EEEFFE80220000008200008023000000830000802500000084000080260000008400008059000000EEEFFE805E00000084000080640000008500008065000000860000806E00000088000084B7000000EEEFFE80BB0000008D000080BC0000008E000080CA0000008F000080CC00000090000080CF00000092000080D000000093000080DC000000EEEFFE80E000000094000080E100000095000080E4000000EEEFFE80E800000095000080F40000009600008008010000970000800A010000980000800B010000990000800C0100009A0000800D010000EEEFFE8013010000840000801D0100009B0000801E0100009C000080230100009D0000800500060009002100090055000000000009000A000D0028000D0014002800600000000000160024000D000E00110035001100280000000000110012001500360015002C00110012001100120015004000000000001500160019002C00000000002D0045001900530019002F0015001600110012000D000E00000000002500270009000A0009001F0005000600F400000008000000010000000000000010000000000000002000000038000000600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000003E002A11000000006403000000000000370200000000000000000000050000061B03000001000000003C536561726368416C6C5461626C65733E625F5F3000001600031104000000EC020000370200001B030000010000001E002011000000000300001100000000000000007461626C654E616D650000001600031144000000E80200002802000029030000010000001A00201101000000030000110000000000000000636F6E6E00000000160003117C000000E40200000F02000035030000010000001E002011020000000300001100000000000000007768657265436C617573650016000311B0000000500100008700000043030000010000001600201103000000030000110000000000000000636D640016000311E80000004C0100005600000066030000010000001A002011040000000300001100000000000000007265616465720000020006000200060016000311B0000000E002000065010000DE030000010000002200201108000000030000110000000000000000666F726D61747465645465726D7300001E0020110900000003000011000000000000000066756C6C51756572790000001600031154010000DC020000F50000004C04000001000000160020110B000000030000110000000000000000636D640016000311B0010000D8020000DC00000056040000010000001A0020110C000000030000110000000000000000636D64526573000016000311E0010000D4020000D30000005E040000010000001A0020110D00000003000011000000000000000072656164657200001600031114020000D00200007E000000A3040000010000001A00201110000000030000110000000000000000786D6C646F6300001A002011110000000300001100000000000000006E6F6465730000001600031148020000CC02000021000000DE040000010000001A002011130000000300001100000000000000006E6F64650000000002000600020006000200060002000600020006000200060002000600020006000200060072000404C93FEAC6B359D649BC250902BBABB460000000004D0044003200000004020000040100000C0000000100000604060001440000000188DD01891A0189940189C6018A5300028AA9028BB8018C06018CB2028D21018E21018E8C018EC5028F2B028FB901901F0190BE069110019110000002000600F2000000480300001B030000010001003702000000000000440000003C030000000000003E000080010000003F0000800E000000410000801A000000420000801B00000043000080220000004400008028000000450000804A000000460000804B00000047000080530000004800008054000000EEEFFE80560000004A000080780000004900008081000000EEEFFE80850000004C000080910000004D00008094000000EEEFFE80A0000000EEEFFE80A10000004E000080A4000000EEEFFE80AE000000EEEFFE80AF00000050000080BC000000EEEFFE80C300000051000080C400000052000080F00000005300008005010000550000800D010000EEEFFE80110100005600008012010000570000802A01000058000080300100005A000080310100005B0000803B0100005C0000803C0100005D000080430100005E0000804C0100005F0000804D010000EEEFFE804F01000061000080690100006000008072010000EEEFFE80760100006300008084010000EEEFFE80880100006400008089010000650000809001000066000080A901000067000080B701000068000080B801000068000080C1010000EEEFFE80C301000068000080D101000068000080E401000068000080EF010000EEEFFE8004020000EEEFFE800502000069000080060200006A00008009020000EEEFFE8015020000EEEFFE80160200006B00008019020000EEEFFE8025020000EEEFFE80260200006C000080270200006D000080280200006E0000802B020000EEEFFE8035020000EEEFFE80360200006F0000800D000E001100330018004600110012001500210015002A001C007000150016002000400019001A000000000021007A001D003200000000001D00320019001A00000000000000000015001600000000000000000015002E0000000000150016001900AB001900700019002F000000000019001A001D00510019001A0019001A0024004D001D001E00210031002800480021002200000000002900500025003A000000000025003600000000002500260029004800290055002900550029003000420047000000000032003E0049006C003F0041000000000000000000250026002100220000000000000000001D001E00000000000000000019001A00150016001100120000000000000000000D000E00F400000008000000010000000000000008000000780000009C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF1A092FF1300000001C0200006100000001000000210000000100000079000000010000009D0000000100000039000000010000000100000001000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C0000001800000024000000300000003C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E00251100000000040000000100536561726368416C6C5461626C65730000001600291100000000040000000100303630303030303100002600251100000000100300000100476574466F726D61747465645365617263685465726D7300000016002911000000001003000001003036303030303032000022002511000000000400000002003C536561726368416C6C5461626C65733E625F5F30001600291100000000040000000200303630303030303500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000A0E96803FFFFFFFF1A092FF1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFFFFFF0900FFFFFFFFFFFFFFFFFFFF00E0000000580000002C00000058000000000000000000000016000000190000000000EEC00000000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000A00A804000000000000280400000100DA2700000000000000000000000053746F72656450726F6365647572657300434441353133364600000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000B006803000000000000600300000100DA2700000000000000000000000053746F72656450726F636564757265732E3C3E635F5F446973706C6179436C617373305F30004435453334374634000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FFFFFFFF77093101010000000C000B8E0D00ED620E000000CC000000580000002C00000058000000000000000000000016000000190000000000EEC00000000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000A00A804000000000000280400000100DA2700000000000000000000000053746F72656450726F6365647572657300434441353133364600000000000000FFFF000000000000FFFFFFFF00000000FFFF0000000000000000000000000B006803000000000000600300000100DA2700000000000000000000000053746F72656450726F636564757265732E3C3E635F5F446973706C6179436C617373305F3000443545333437463400002DBA2EF10100000000000000F50100000000000000000000000000000000000001000000F50100002601000000000000000000000000000000000000010000001B03000037020000000000000100430B0000000000000000020002000D01000000000100FFFFFFFF00000000520500000802000000000000FFFFFFFF00000000FFFFFFFF0200020000000100010001000000000000000000433A5C55736572735C4875676F5C536F757263655C5265706F735C4461746162617365315C4461746162617365315C536561726368416C6C5461626C65732E6373000000FEEFFEEF0100000001000000000100000000000000000000942E310110B0C959010000002DF3C1C3EEAB93438D695BAD448D6FF56F0000002F4C696E6B496E666F002F6E616D6573002F7372632F686561646572626C6F636B002F7372632F66696C65732F633A5C75736572735C6875676F5C736F757263655C7265706F735C6461746162617365315C6461746162617365315C736561726368616C6C7461626C65732E6373000400000006000000010000003A0000000000000011000000070000000A000000060000000000000005000000220000000800000000000000DC5133010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000F00000020000000CB00000038000000170200003800000000000000AA000000800000005C00000028000000E4080000D40600005C0200002C000000B4000000030000001B000000060000001A00000019000000070000000A0000000B00000008000000090000000C0000000D0000000E0000000F00000010000000110000001200000013000000140000001500000016000000180000001700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001C000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 AS N'SearchAllTables.pdb';
  255. GO
  256.  
  257. PRINT N'Adding CLR stored procedure [dbo].[SearchAllTables]...';
  258. GO
  259.  
  260. CREATE PROCEDURE [dbo].[SearchAllTables] @valueSearchTerm NVARCHAR (250) NULL = '',
  261.                                          @tablesSearchTerm NVARCHAR (250) NULL = '',
  262.                                          @columnsSearchTerm NVARCHAR (250) NULL = '',
  263.                                          @getOnlyFirstRowPerTable BIT NULL = 0,
  264.                                          @maxDegreeOfParallelism INT NULL = 0,
  265.                                          @onlyOutputQueries BIT NULL = 0
  266. AS EXTERNAL NAME [SearchAllTables].[StoredProcedures].[SearchAllTables]
  267. GO
  268.  
  269. PRINT N'Installation completed.';
  270. GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement