惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
O
OpenAI News
Y
Y Combinator Blog
MyScale Blog
MyScale Blog
C
Check Point Blog
Vercel News
Vercel News
小众软件
小众软件
The Register - Security
The Register - Security
N
News and Events Feed by Topic
腾讯CDC
S
SegmentFault 最新的问题
H
Heimdal Security Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
S
Secure Thoughts
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Schneier on Security
Schneier on Security
G
GRAHAM CLULEY
云风的 BLOG
云风的 BLOG
S
Schneier on Security
J
Java Code Geeks
L
LINUX DO - 最新话题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Privacy & Cybersecurity Law Blog
Forbes - Security
Forbes - Security
Cisco Talos Blog
Cisco Talos Blog
L
LINUX DO - 热门话题
Scott Helme
Scott Helme
爱范儿
爱范儿
GbyAI
GbyAI
Simon Willison's Weblog
Simon Willison's Weblog
L
Lohrmann on Cybersecurity
Cloudbric
Cloudbric
W
WeLiveSecurity
The Hacker News
The Hacker News
V
V2EX
Last Week in AI
Last Week in AI
Hacker News: Ask HN
Hacker News: Ask HN
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Blog — PlanetScale
Blog — PlanetScale
Cyberwarzone
Cyberwarzone
Google Online Security Blog
Google Online Security Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
S
Security @ Cisco Blogs
P
Proofpoint News Feed
Google DeepMind News
Google DeepMind News
C
Cyber Attacks, Cyber Crime and Cyber Security
U
Unit 42
Webroot Blog
Webroot Blog
Martin Fowler
Martin Fowler
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed

puzzle9 blog

webdav - puzzle9 blog parser video tencent - puzzle9 blog wstunnel - puzzle9 blog rclone - puzzle9 blog debian 转换为 pve - puzzle9 blog nfs - puzzle9 blog caddy - puzzle9 blog webhookd 发布 - puzzle9 blog win 系统部署 by WinRM - puzzle9 blog hl7 初探 - puzzle9 blog realm 端口转发 - puzzle9 blog airflow - puzzle9 blog 租房啊 - puzzle9 blog cr660x 路由器研究 - puzzle9 blog hs8145v 光猫研究 - puzzle9 blog dae 跨墙 - puzzle9 blog ZeroTier 打洞 🕊 - puzzle9 blog rathole 穿透 - puzzle9 blog WireGuard 组网 - puzzle9 blog
mysql 迁移到 mssql - puzzle9 blog
2025-07-02 · via puzzle9 blog
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,
]);
}
}