internal static void ThrowWhenSchemaAlreadyHasBeenInitialized(SqlLoggingProvider provider) { using (SqlConnection connection = new SqlConnection(provider.ConnectionString)) { connection.Open(); const string Query = @" SELECT CONVERT(int, count(*)) FROM sysobjects WHERE name IN ( 'logging_EventTypes', 'logging_Events', 'logging_Exceptions', 'logging_AddEvent', 'logging_AddException' );"; using (SqlCommand command = new SqlCommand(Query, connection)) { int sysObjectCount = (int)command.ExecuteScalar(); if (sysObjectCount > 0) { throw new ProviderException(SR.SqlProviderAlreadyInitialized(provider.Name)); } } } }
internal static void CreateTablesAndStoredProcedures(SqlLoggingProvider provider, string[] createScripts) { using (var connection = new SqlConnection(provider.ConnectionString)) { connection.Open(); using (var transaction = connection.BeginTransaction()) { foreach (string script in createScripts) { using (var command = new SqlCommand(script, connection, transaction)) { command.ExecuteNonQuery(); } } transaction.Commit(); } } }