1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| $mssql_db = DB::connection('mssql');
$local_database = config('database.connections.mariadb.database');
$local_tables = DB::connection('mariadb') ->table('information_schema.TABLES') ->where('TABLE_SCHEMA', $local_database) ->pluck('table_comment', 'table_name');
$local_columns = DB::connection('mariadb') ->table('information_schema.COLUMNS') ->select('table_name', 'column_name', 'column_comment') ->where('TABLE_SCHEMA', $local_database) ->get() ->groupBy('table_name');
foreach ($local_columns as $table_name => $table_columns) { try { $mssql_db->table($table_name)->exists(); } catch (\Exception) { continue; }
$table_comment = $local_tables[$table_name];
$mssql_db->statement("IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description', 'SCHEMA', 'dbo', 'TABLE', ?, NULL, NULL)) > 0) EXEC sp_updateextendedproperty 'MS_Description', ?, 'SCHEMA', 'dbo', 'TABLE', ? ELSE EXEC sp_addextendedproperty 'MS_Description', ?, 'SCHEMA', 'dbo', 'TABLE', ?", [ $table_name, $table_comment, $table_name, $table_comment, $table_name, ]);
foreach ($table_columns as $column) { $column_name = $column->column_name;
$column_comment = $column->column_comment; $mssql_db->statement("IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description', 'SCHEMA', 'dbo', 'TABLE', ?, 'COLUMN', ?)) > 0) EXEC sp_updateextendedproperty 'MS_Description', ?, 'SCHEMA', 'dbo', 'TABLE', ?, 'COLUMN', ? ELSE EXEC sp_addextendedproperty 'MS_Description', ?, 'SCHEMA', 'dbo', 'TABLE', ?, 'COLUMN', ?", [ $table_name, $column_name, $column_comment, $table_name, $column_name, $column_comment, $table_name, $column_name, ]); } }
|