所以这将是一个奇怪的问题,但我会尽力解释它,以帮助任何人在这里帮助我......
我遇到的情况是,我试图将数据从一个数据库复制到另一个数据库到类似的表格,但是存在一些细微差别,这使得世界变得不同。 db1.table1
允许null
中的col3
值,并且实际上有多个行具有空值但db2.table1
不允许null
值col3
但我仍然需要复制值。此外,db1.table1.col3
是GUID
而db2.table1.col3
是VARCHAR
,这是问题的一部分。如果db1.table1.col3
不属于GUID
类型,那么我只需要UPDATE
列,其中包含我需要在db2.table1.col3
中插入的文本。
所以,总结一下:我正在寻找一种方法
INSERT INTO db2.table1 (col1, col2, col3...) SELECT col1, col2, col3... FROM db1.table1
但是在col3为null的地方,我需要插入text / varchar以使它不为null。
有没有比建立任何人都知道的临时表更简单的方法呢?
答案 0 :(得分:1)
将COALESCE或ISNULL与您想要的替换文字一起使用
例如ISNULL(Col3, 'Sometext')
对于GUID,您可以使用NEWID()函数,因为您无法将常规文本插入uniqueidentifier数据类型
NEWID()函数返回GUID ....例如
SELECT NEWID()
26C064EF-0AB6-4DBE-91B3-C2EE40DE7AD6