sql - Creating a table and populating with a merge -
i have sql 2008 r2 table consists of (col1(char), col2(int, prim key), col3(char)).
i populating table with...
merge [dbo].[data] target using ( select 01, 1, 'data1' union select 03, 2, 'data2' union select d2, 3, 'data3' )as source ([col1], [col2], [col3]) on (target.[col2] = source.[col2]) when matched update set [col1] = source.[col1], [col3] = source.[col3] when not matched insert ([col1], [col2], [col3]) values (source.[col1],source.[col2], source.[col3]);
it populates fine, aside "select d2, 3, 'data3'" statement, , throws invalid column name. ideas why or how fix it?
thanks
you need add little char col1: '
merge [dbo].[data] target using ( select '01' col1, 1 col2, 'data1' col3 union select '03', 2, 'data2' union select 'd2', 3, 'data3' )as source ([col1], [col2], [col3]) on (target.[col2] = source.[col2]) when matched update set [col1] = source.[col1], [col3] = source.[col3] when not matched insert ([col1], [col2], [col3]) values (source.[col1],source.[col2], source.[col3]);
Comments
Post a Comment