回答

收藏

SQL脚本创建插入脚本

技术问答 技术问答 227 人阅读 | 0 人回复 | 2023-09-14

我会解释一个模糊的标题。
9 b  [, u+ y3 Y  n2 d我正在编写一个SQL脚本来为数据库中表的每一行创建一个插入语句,纯粹是为了能够将该数据应用回另一个数据库。
5 q* W6 E. M0 x0 O5 `这是我目前所拥有的:
2 P6 _" s" U3 }' B$ kSELECT 'INSERT INTO products (id,name,description) VALUES ('||ID||','''||name||''','''||description||''');' FROM products% w2 Z7 {7 o. \2 c- z' d( H9 ~
它的效果很好,输出如下:. O6 y1 H' b$ W. A! w/ k
INSERT INTO products (id,name,description) VALUES (1,'Lorem','Ipsum');
1 z9 _1 T4 K  C' v. tINSERT INTO products (id,name,description) VALUES (2,'Lorem','Ipsum');
8 a( x5 T0 X: i: W3 Q* q% xINSERT INTO products (id,name,description) VALUES (3,'Lorem','Ipsum');
  B2 B# m& R7 ~( Y3 O: ~INSERT INTO products (id,name,description) VALUES (4,'Lorem','Ipsum');
- f' t% P4 [4 w) V问题是,如果字段之一为空,则该行将无法生成更新脚本,在输出文件中,该行仅是空白。显然,由于有20多个字段,因此一些可选内容意味着几乎不会生成我的任何脚本。; L5 y; E: I/ K; t, b
有没有办法解决这个问题?( |2 G' V. J8 x, J: B
                4 I% D* z0 {6 ~1 F* M  ?/ T7 r& t
解决方案:6 P4 _/ B6 g7 n
               
( e7 y2 A5 A' u; U# [9 q' W- l( k  N6 Q- x! Q2 y$ {
4 B' v( a2 l. U1 M
                对于NULL字段,您可以执行以下操作
6 i/ T, Y3 c: u% zSelect COALESCE(Name, '') from...
7 \9 J1 W5 B4 T5 ~合并函数返回列表中的第一个非空值。
6 U$ R9 b4 A( a对于真正空白的字段(例如,空的nvarchar),我相信您上面的脚本将起作用。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则