From 5213bd02240edd35769c4554984c910edffc88c7 Mon Sep 17 00:00:00 2001 From: 2881099 <2881099@qq.com> Date: Fri, 16 Jul 2021 00:47:29 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E6=94=B9=20MERGE=20INTO=20?= =?UTF-8?q?=E5=88=AB=E5=90=8D=E4=B8=8E=20SQL=20=E5=85=B3=E9=94=AE=E5=AD=97?= =?UTF-8?q?=E5=86=B2=E7=AA=81=E7=9A=84=20bug=EF=BC=9B#816?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FreeSql.DbContext/FreeSql.DbContext.xml | 9 - ...DamengInsertOrUpdateIfExistsNothingTest.cs | 126 ++++++------- .../Dameng/Curd/DamengInsertOrUpdateTest.cs | 168 +++++++++--------- ...acleInsertOrUpdateIfExistsDoNothingTest.cs | 126 ++++++------- .../Oracle/Curd/OracleInsertOrUpdateTest.cs | 168 +++++++++--------- ...rverInsertOrUpdateIfExistsDoNothingTest.cs | 126 ++++++------- .../Curd/SqlServerInsertOrUpdateTest.cs | 168 +++++++++--------- ...DamengInsertOrUpdateIfExistsNothingTest.cs | 126 ++++++------- .../Dameng/Curd/DamengInsertOrUpdateTest.cs | 168 +++++++++--------- ...birdInsertOrUpdateIfExistsDoNothingTest.cs | 126 ++++++------- .../Curd/FirebirdInsertOrUpdateTest.cs | 168 +++++++++--------- ...acleInsertOrUpdateIfExistsDoNothingTest.cs | 126 ++++++------- .../Oracle/Curd/OracleInsertOrUpdateTest.cs | 168 +++++++++--------- ...TongInsertOrUpdateIfExistsDoNothingTest.cs | 96 +++++----- .../Curd/ShenTongInsertOrUpdateTest.cs | 126 ++++++------- ...rverInsertOrUpdateIfExistsDoNothingTest.cs | 126 ++++++------- .../Curd/SqlServerInsertOrUpdateTest.cs | 168 +++++++++--------- .../CommonProvider/InsertOrUpdateProvider.cs | 2 +- .../Curd/DamengInsertOrUpdate.cs | 6 +- .../Curd/FirebirdInsertOrUpdate.cs | 6 +- .../Dameng/Curd/OdbcDamengInsertOrUpdate.cs | 6 +- .../Oracle/Curd/OdbcOracleInsertOrUpdate.cs | 6 +- .../Curd/OdbcSqlServerInsertOrUpdate.cs | 6 +- .../Curd/OracleInsertOrUpdate.cs | 6 +- .../Curd/ShenTongInsertOrUpdate.cs | 6 +- .../Curd/SqlServerInsertOrUpdate.cs | 6 +- 26 files changed, 1165 insertions(+), 1174 deletions(-) diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml index 27909b2e..02eb0609 100644 --- a/FreeSql.DbContext/FreeSql.DbContext.xml +++ b/FreeSql.DbContext/FreeSql.DbContext.xml @@ -512,14 +512,5 @@ - - - 批量注入 Repository,可以参考代码自行调整 - - - - - - diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengInsertOrUpdateIfExistsNothingTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengInsertOrUpdateIfExistsNothingTest.cs index 1f65a142..e151e4b2 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengInsertOrUpdateIfExistsNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengInsertOrUpdateIfExistsNothingTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.Dameng var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 2 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); } class tbioudn01 @@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn02 { id = 1, name = "01" }, new tbioudn02 { id = 2, name = "02" }, new tbioudn02 { id = 3, name = "03" }, new tbioudn02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn02 { id = 1, name = "001" }, new tbioudn02 { id = 2, name = "002" }, new tbioudn02 { id = 3, name = "003" }, new tbioudn02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn022 { id = 1, name = "01" }, new tbioudn022 { id = 2, name = "02" }, new tbioudn022 { id = 3, name = "03" }, new tbioudn022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn022 { id = 1, name = "001" }, new tbioudn022 { id = 2, name = "002" }, new tbioudn022 { id = 3, name = "003" }, new tbioudn022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -247,16 +247,16 @@ INTO ""TBIOUDN022""(""NAME"") VALUES('004') iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn022 { id = 1, name = "100001" }, new tbioudn022 { name = "00001" }, new tbioudn022 { id = 2, name = "100002" }, new tbioudn022 { name = "00002" }, new tbioudn022 { id = 3, name = "100003" }, new tbioudn022 { name = "00003" }, new tbioudn022 { id = 4, name = "100004" }, new tbioudn022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '100001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '100001' as ""NAME"" FROM dual UNION ALL SELECT 2, '100002' FROM dual UNION ALL SELECT 3, '100003' FROM dual UNION ALL - SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -284,58 +284,58 @@ INTO ""TBIOUDN022""(""NAME"") VALUES('00004') var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "02", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 1 as ID1, '02' as ID2, '011' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '02' as ""ID2"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn03 { id1 = 1, id2 = "01", name = "01" }, new tbioudn03 { id1 = 2, id2 = "02", name = "02" }, new tbioudn03 { id1 = 3, id2 = "03", name = "03" }, new tbioudn03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '02' FROM dual UNION ALL SELECT 3, '03', '03' FROM dual UNION ALL - SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn03 { id1 = 1, id2 = "01", name = "001" }, new tbioudn03 { id1 = 2, id2 = "02", name = "002" }, new tbioudn03 { id1 = 3, id2 = "03", name = "003" }, new tbioudn03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '002' FROM dual UNION ALL SELECT 3, '03', '003' FROM dual UNION ALL - SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -356,58 +356,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn04 { id = 1, name = "01" }, new tbioudn04 { id = 2, name = "02" }, new tbioudn04 { id = 3, name = "03" }, new tbioudn04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '02', 0, systimestamp FROM dual UNION ALL SELECT 3, '03', 0, systimestamp FROM dual UNION ALL - SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn04 { id = 1, name = "001" }, new tbioudn04 { id = 2, name = "002" }, new tbioudn04 { id = 3, name = "003" }, new tbioudn04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '002', 0, systimestamp FROM dual UNION ALL SELECT 3, '003', 0, systimestamp FROM dual UNION ALL - SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengInsertOrUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengInsertOrUpdateTest.cs index dfbaeb07..41c5cba8 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengInsertOrUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Dameng/Curd/DamengInsertOrUpdateTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.Dameng var iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 2 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); } class tbiou01 @@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "01" }, new tbiou02 { id = 2, name = "02" }, new tbiou02 { id = 3, name = "03" }, new tbiou02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "001" }, new tbiou02 { id = 2, name = "002" }, new tbiou02 { id = 3, name = "003" }, new tbiou02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "01" }, new tbiou022 { id = 2, name = "02" }, new tbiou022 { id = 3, name = "03" }, new tbiou022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "001" }, new tbiou022 { id = 2, name = "002" }, new tbiou022 { id = 3, name = "003" }, new tbiou022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -267,18 +267,18 @@ INTO ""TBIOU022""(""NAME"") VALUES('004') iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "100001" }, new tbiou022 { name = "00001" }, new tbiou022 { id = 2, name = "100002" }, new tbiou022 { name = "00002" }, new tbiou022 { id = 3, name = "100003" }, new tbiou022 { name = "00003" }, new tbiou022 { id = 4, name = "100004" }, new tbiou022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '100001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '100001' as ""NAME"" FROM dual UNION ALL SELECT 2, '100002' FROM dual UNION ALL SELECT 3, '100003' FROM dual UNION ALL - SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -306,68 +306,68 @@ INTO ""TBIOU022""(""NAME"") VALUES('00004') var iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '011' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "01" }, new tbiou03 { id1 = 2, id2 = "02", name = "02" }, new tbiou03 { id1 = 3, id2 = "03", name = "03" }, new tbiou03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '02' FROM dual UNION ALL SELECT 3, '03', '03' FROM dual UNION ALL - SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '002' FROM dual UNION ALL SELECT 3, '03', '003' FROM dual UNION ALL - SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count()); @@ -388,68 +388,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "01" }, new tbiou04 { id = 2, name = "02" }, new tbiou04 { id = 3, name = "03" }, new tbiou04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '02', 0, systimestamp FROM dual UNION ALL SELECT 3, '03', 0, systimestamp FROM dual UNION ALL - SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "001" }, new tbiou04 { id = 2, name = "002" }, new tbiou04 { id = 3, name = "003" }, new tbiou04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '002', 0, systimestamp FROM dual UNION ALL SELECT 3, '003', 0, systimestamp FROM dual UNION ALL - SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleInsertOrUpdateIfExistsDoNothingTest.cs index 87c2cc30..43fcdac5 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleInsertOrUpdateIfExistsDoNothingTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.Oracle var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 2 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); } class tbioudb01 @@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "01" }, new tbioudb022 { id = 2, name = "02" }, new tbioudb022 { id = 3, name = "03" }, new tbioudb022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "001" }, new tbioudb022 { id = 2, name = "002" }, new tbioudb022 { id = 3, name = "003" }, new tbioudb022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -247,16 +247,16 @@ INTO ""TBIOUDB022""(""NAME"") VALUES('004') iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "100001" }, new tbioudb022 { name = "00001" }, new tbioudb022 { id = 2, name = "100002" }, new tbioudb022 { name = "00002" }, new tbioudb022 { id = 3, name = "100003" }, new tbioudb022 { name = "00003" }, new tbioudb022 { id = 4, name = "100004" }, new tbioudb022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '100001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '100001' as ""NAME"" FROM dual UNION ALL SELECT 2, '100002' FROM dual UNION ALL SELECT 3, '100003' FROM dual UNION ALL - SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -284,58 +284,58 @@ INTO ""TBIOUDB022""(""NAME"") VALUES('00004') var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '011' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '02' FROM dual UNION ALL SELECT 3, '03', '03' FROM dual UNION ALL - SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '002' FROM dual UNION ALL SELECT 3, '03', '003' FROM dual UNION ALL - SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -356,58 +356,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '02', 0, systimestamp FROM dual UNION ALL SELECT 3, '03', 0, systimestamp FROM dual UNION ALL - SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '002', 0, systimestamp FROM dual UNION ALL SELECT 3, '003', 0, systimestamp FROM dual UNION ALL - SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleInsertOrUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleInsertOrUpdateTest.cs index 0081c3b1..aee4fefe 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleInsertOrUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/Oracle/Curd/OracleInsertOrUpdateTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.Oracle var iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 2 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); } class tbiou01 @@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "01" }, new tbiou02 { id = 2, name = "02" }, new tbiou02 { id = 3, name = "03" }, new tbiou02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "001" }, new tbiou02 { id = 2, name = "002" }, new tbiou02 { id = 3, name = "003" }, new tbiou02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "01" }, new tbiou022 { id = 2, name = "02" }, new tbiou022 { id = 3, name = "03" }, new tbiou022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "001" }, new tbiou022 { id = 2, name = "002" }, new tbiou022 { id = 3, name = "003" }, new tbiou022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -267,18 +267,18 @@ INTO ""TBIOU022""(""NAME"") VALUES('004') iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "100001" }, new tbiou022 { name = "00001" }, new tbiou022 { id = 2, name = "100002" }, new tbiou022 { name = "00002" }, new tbiou022 { id = 3, name = "100003" }, new tbiou022 { name = "00003" }, new tbiou022 { id = 4, name = "100004" }, new tbiou022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '100001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '100001' as ""NAME"" FROM dual UNION ALL SELECT 2, '100002' FROM dual UNION ALL SELECT 3, '100003' FROM dual UNION ALL - SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -306,68 +306,68 @@ INTO ""TBIOU022""(""NAME"") VALUES('00004') var iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '011' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "01" }, new tbiou03 { id1 = 2, id2 = "02", name = "02" }, new tbiou03 { id1 = 3, id2 = "03", name = "03" }, new tbiou03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '02' FROM dual UNION ALL SELECT 3, '03', '03' FROM dual UNION ALL - SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '002' FROM dual UNION ALL SELECT 3, '03', '003' FROM dual UNION ALL - SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count()); @@ -388,68 +388,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "01" }, new tbiou04 { id = 2, name = "02" }, new tbiou04 { id = 3, name = "03" }, new tbiou04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '02', 0, systimestamp FROM dual UNION ALL SELECT 3, '03', 0, systimestamp FROM dual UNION ALL - SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "001" }, new tbiou04 { id = 2, name = "002" }, new tbiou04 { id = 3, name = "003" }, new tbiou04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '002', 0, systimestamp FROM dual UNION ALL SELECT 3, '003', 0, systimestamp FROM dual UNION ALL - SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerInsertOrUpdateIfExistsDoNothingTest.cs index 623205b1..75314dc4 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerInsertOrUpdateIfExistsDoNothingTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.SqlServer var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 1 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 1 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 2 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 1 as id +USING (SELECT 1 as [id] UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.[id] = t2.id) + SELECT 4 ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 1 as id +USING (SELECT 1 as [id] UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.[id] = t2.id) + SELECT 4 ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbioudb01 @@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 1 as id, N'01' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 1 as id, N'011' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 2 as id, N'02' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 1 as id, N'01' as name +USING (SELECT 1 as [id], N'01' as [name] UNION ALL SELECT 2, N'02' UNION ALL SELECT 3, N'03' UNION ALL - SELECT 4, N'04' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 1 as id, N'001' as name +USING (SELECT 1 as [id], N'001' as [name] UNION ALL SELECT 2, N'002' UNION ALL SELECT 3, N'003' UNION ALL - SELECT 4, N'004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -152,10 +152,10 @@ WHEN NOT MATCHED THEN var sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'01' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -163,10 +163,10 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'011' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(0, iou.ExecuteAffrows()); @@ -174,10 +174,10 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 2 as id, N'02' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -185,16 +185,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'01' as name +USING (SELECT 1 as [id], N'01' as [name] UNION ALL SELECT 2, N'02' UNION ALL SELECT 3, N'03' UNION ALL - SELECT 4, N'04' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(2, iou.ExecuteAffrows()); @@ -202,16 +202,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'001' as name +USING (SELECT 1 as [id], N'001' as [name] UNION ALL SELECT 2, N'002' UNION ALL SELECT 3, N'003' UNION ALL - SELECT 4, N'004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); @@ -248,16 +248,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'100001' as name +USING (SELECT 1 as [id], N'100001' as [name] UNION ALL SELECT 2, N'100002' UNION ALL SELECT 3, N'100003' UNION ALL - SELECT 4, N'100004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'100004' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF; ; @@ -281,58 +281,58 @@ INSERT INTO [tbioudb022]([name]) VALUES(N'00001'), (N'00002'), (N'00003'), (N'00 var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'01' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 1 as [id1], N'01' as [id2], N'01' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'011' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 1 as [id1], N'01' as [id2], N'011' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 2 as id1, N'02' as id2, N'02' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 2 as [id1], N'02' as [id2], N'02' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'01' as name +USING (SELECT 1 as [id1], N'01' as [id2], N'01' as [name] UNION ALL SELECT 2, N'02', N'02' UNION ALL SELECT 3, N'03', N'03' UNION ALL - SELECT 4, N'04', N'04' ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) + SELECT 4, N'04', N'04' ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'001' as name +USING (SELECT 1 as [id1], N'01' as [id2], N'001' as [name] UNION ALL SELECT 2, N'02', N'002' UNION ALL SELECT 3, N'03', N'003' UNION ALL - SELECT 4, N'04', N'004' ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) + SELECT 4, N'04', N'004' ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -353,58 +353,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 1 as id, N'01' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 1 as id, N'011' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 2 as id, N'02' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 1 as id, N'01' as name, 0 as version, getdate() as CreateTime +USING (SELECT 1 as [id], N'01' as [name], 0 as [version], getdate() as [CreateTime] UNION ALL SELECT 2, N'02', 0, getdate() UNION ALL SELECT 3, N'03', 0, getdate() UNION ALL - SELECT 4, N'04', 0, getdate() ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04', 0, getdate() ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 1 as id, N'001' as name, 0 as version, getdate() as CreateTime +USING (SELECT 1 as [id], N'001' as [name], 0 as [version], getdate() as [CreateTime] UNION ALL SELECT 2, N'002', 0, getdate() UNION ALL SELECT 3, N'003', 0, getdate() UNION ALL - SELECT 4, N'004', 0, getdate() ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004', 0, getdate() ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerInsertOrUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerInsertOrUpdateTest.cs index 148a0e1b..d2ac2e29 100644 --- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerInsertOrUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/SqlServer/Curd/SqlServerInsertOrUpdateTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.SqlServer var iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 1 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 1 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 2 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 1 as id +USING (SELECT 1 as [id] UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.[id] = t2.id) + SELECT 4 ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 1 as id +USING (SELECT 1 as [id] UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.[id] = t2.id) + SELECT 4 ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbiou01 @@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 1 as id, N'01' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 1 as id, N'011' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 2 as id, N'02' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "01" }, new tbiou02 { id = 2, name = "02" }, new tbiou02 { id = 3, name = "03" }, new tbiou02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 1 as id, N'01' as name +USING (SELECT 1 as [id], N'01' as [name] UNION ALL SELECT 2, N'02' UNION ALL SELECT 3, N'03' UNION ALL - SELECT 4, N'04' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "001" }, new tbiou02 { id = 2, name = "002" }, new tbiou02 { id = 3, name = "003" }, new tbiou02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 1 as id, N'001' as name +USING (SELECT 1 as [id], N'001' as [name] UNION ALL SELECT 2, N'002' UNION ALL SELECT 3, N'003' UNION ALL - SELECT 4, N'004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -162,12 +162,12 @@ WHEN NOT MATCHED THEN var sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'01' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -175,12 +175,12 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'011' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -188,12 +188,12 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 2 as id, N'02' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -201,18 +201,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'01' as name +USING (SELECT 1 as [id], N'01' as [name] UNION ALL SELECT 2, N'02' UNION ALL SELECT 3, N'03' UNION ALL - SELECT 4, N'04' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(4, iou.ExecuteAffrows()); @@ -220,18 +220,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'001' as name +USING (SELECT 1 as [id], N'001' as [name] UNION ALL SELECT 2, N'002' UNION ALL SELECT 3, N'003' UNION ALL - SELECT 4, N'004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); @@ -268,18 +268,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'100001' as name +USING (SELECT 1 as [id], N'100001' as [name] UNION ALL SELECT 2, N'100002' UNION ALL SELECT 3, N'100003' UNION ALL - SELECT 4, N'100004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'100004' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF; ; @@ -303,68 +303,68 @@ INSERT INTO [tbiou022]([name]) VALUES(N'00001'), (N'00002'), (N'00003'), (N'0000 var iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'01' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 1 as [id1], N'01' as [id2], N'01' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'011' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 1 as [id1], N'01' as [id2], N'011' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 2 as id1, N'02' as id2, N'02' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 2 as [id1], N'02' as [id2], N'02' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "01" }, new tbiou03 { id1 = 2, id2 = "02", name = "02" }, new tbiou03 { id1 = 3, id2 = "03", name = "03" }, new tbiou03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'01' as name +USING (SELECT 1 as [id1], N'01' as [id2], N'01' as [name] UNION ALL SELECT 2, N'02', N'02' UNION ALL SELECT 3, N'03', N'03' UNION ALL - SELECT 4, N'04', N'04' ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) + SELECT 4, N'04', N'04' ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'001' as name +USING (SELECT 1 as [id1], N'01' as [id2], N'001' as [name] UNION ALL SELECT 2, N'02', N'002' UNION ALL SELECT 3, N'03', N'003' UNION ALL - SELECT 4, N'04', N'004' ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) + SELECT 4, N'04', N'004' ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count()); @@ -385,68 +385,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 1 as id, N'01' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 1 as id, N'011' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 2 as id, N'02' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "01" }, new tbiou04 { id = 2, name = "02" }, new tbiou04 { id = 3, name = "03" }, new tbiou04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 1 as id, N'01' as name, 0 as version, getdate() as CreateTime +USING (SELECT 1 as [id], N'01' as [name], 0 as [version], getdate() as [CreateTime] UNION ALL SELECT 2, N'02', 0, getdate() UNION ALL SELECT 3, N'03', 0, getdate() UNION ALL - SELECT 4, N'04', 0, getdate() ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04', 0, getdate() ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "001" }, new tbiou04 { id = 2, name = "002" }, new tbiou04 { id = 3, name = "003" }, new tbiou04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 1 as id, N'001' as name, 0 as version, getdate() as CreateTime +USING (SELECT 1 as [id], N'001' as [name], 0 as [version], getdate() as [CreateTime] UNION ALL SELECT 2, N'002', 0, getdate() UNION ALL SELECT 3, N'003', 0, getdate() UNION ALL - SELECT 4, N'004', 0, getdate() ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004', 0, getdate() ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengInsertOrUpdateIfExistsNothingTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengInsertOrUpdateIfExistsNothingTest.cs index 68a5bc27..08d60f55 100644 --- a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengInsertOrUpdateIfExistsNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengInsertOrUpdateIfExistsNothingTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Dameng var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 2 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); } class tbioudn01 @@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn02 { id = 1, name = "01" }, new tbioudn02 { id = 2, name = "02" }, new tbioudn02 { id = 3, name = "03" }, new tbioudn02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn02 { id = 1, name = "001" }, new tbioudn02 { id = 2, name = "002" }, new tbioudn02 { id = 3, name = "003" }, new tbioudn02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn022 { id = 1, name = "01" }, new tbioudn022 { id = 2, name = "02" }, new tbioudn022 { id = 3, name = "03" }, new tbioudn022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn022 { id = 1, name = "001" }, new tbioudn022 { id = 2, name = "002" }, new tbioudn022 { id = 3, name = "003" }, new tbioudn022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -247,16 +247,16 @@ INTO ""TBIOUDN022""(""NAME"") VALUES('004') iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn022 { id = 1, name = "100001" }, new tbioudn022 { name = "00001" }, new tbioudn022 { id = 2, name = "100002" }, new tbioudn022 { name = "00002" }, new tbioudn022 { id = 3, name = "100003" }, new tbioudn022 { name = "00003" }, new tbioudn022 { id = 4, name = "100004" }, new tbioudn022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1 -USING (SELECT 1 as ID, '100001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '100001' as ""NAME"" FROM dual UNION ALL SELECT 2, '100002' FROM dual UNION ALL SELECT 3, '100003' FROM dual UNION ALL - SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -284,58 +284,58 @@ INTO ""TBIOUDN022""(""NAME"") VALUES('00004') var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "02", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 1 as ID1, '02' as ID2, '011' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '02' as ""ID2"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn03 { id1 = 1, id2 = "01", name = "01" }, new tbioudn03 { id1 = 2, id2 = "02", name = "02" }, new tbioudn03 { id1 = 3, id2 = "03", name = "03" }, new tbioudn03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '02' FROM dual UNION ALL SELECT 3, '03', '03' FROM dual UNION ALL - SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn03 { id1 = 1, id2 = "01", name = "001" }, new tbioudn03 { id1 = 2, id2 = "02", name = "002" }, new tbioudn03 { id1 = 3, id2 = "03", name = "003" }, new tbioudn03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '002' FROM dual UNION ALL SELECT 3, '03', '003' FROM dual UNION ALL - SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -356,58 +356,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudn04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn04 { id = 1, name = "01" }, new tbioudn04 { id = 2, name = "02" }, new tbioudn04 { id = 3, name = "03" }, new tbioudn04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '02', 0, systimestamp FROM dual UNION ALL SELECT 3, '03', 0, systimestamp FROM dual UNION ALL - SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudn04 { id = 1, name = "001" }, new tbioudn04 { id = 2, name = "002" }, new tbioudn04 { id = 3, name = "003" }, new tbioudn04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '002', 0, systimestamp FROM dual UNION ALL SELECT 3, '003', 0, systimestamp FROM dual UNION ALL - SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengInsertOrUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengInsertOrUpdateTest.cs index e3dea03d..619e8670 100644 --- a/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengInsertOrUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Dameng/Curd/DamengInsertOrUpdateTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Dameng var iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 2 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); iou.ExecuteAffrows(); } class tbiou01 @@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "01" }, new tbiou02 { id = 2, name = "02" }, new tbiou02 { id = 3, name = "03" }, new tbiou02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "001" }, new tbiou02 { id = 2, name = "002" }, new tbiou02 { id = 3, name = "003" }, new tbiou02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "01" }, new tbiou022 { id = 2, name = "02" }, new tbiou022 { id = 3, name = "03" }, new tbiou022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "001" }, new tbiou022 { id = 2, name = "002" }, new tbiou022 { id = 3, name = "003" }, new tbiou022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -267,18 +267,18 @@ INTO ""TBIOU022""(""NAME"") VALUES('004') iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "100001" }, new tbiou022 { name = "00001" }, new tbiou022 { id = 2, name = "100002" }, new tbiou022 { name = "00002" }, new tbiou022 { id = 3, name = "100003" }, new tbiou022 { name = "00003" }, new tbiou022 { id = 4, name = "100004" }, new tbiou022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '100001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '100001' as ""NAME"" FROM dual UNION ALL SELECT 2, '100002' FROM dual UNION ALL SELECT 3, '100003' FROM dual UNION ALL - SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -306,68 +306,68 @@ INTO ""TBIOU022""(""NAME"") VALUES('00004') var iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '011' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "01" }, new tbiou03 { id1 = 2, id2 = "02", name = "02" }, new tbiou03 { id1 = 3, id2 = "03", name = "03" }, new tbiou03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '02' FROM dual UNION ALL SELECT 3, '03', '03' FROM dual UNION ALL - SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '002' FROM dual UNION ALL SELECT 3, '03', '003' FROM dual UNION ALL - SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count()); @@ -388,68 +388,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "01" }, new tbiou04 { id = 2, name = "02" }, new tbiou04 { id = 3, name = "03" }, new tbiou04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '02', 0, systimestamp FROM dual UNION ALL SELECT 3, '03', 0, systimestamp FROM dual UNION ALL - SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "001" }, new tbiou04 { id = 2, name = "002" }, new tbiou04 { id = 3, name = "003" }, new tbiou04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '002', 0, systimestamp FROM dual UNION ALL SELECT 3, '003', 0, systimestamp FROM dual UNION ALL - SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); iou.ExecuteAffrows(); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdInsertOrUpdateIfExistsDoNothingTest.cs index 204c696d..e3bdff82 100644 --- a/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdInsertOrUpdateIfExistsDoNothingTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Firebird var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT FIRST 1 1 as ID FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT FIRST 1 1 as ID FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT FIRST 1 2 as ID FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 2 as ""ID"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT FIRST 1 1 as ID FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"" FROM rdb$database UNION ALL SELECT FIRST 1 2 FROM rdb$database UNION ALL SELECT FIRST 1 3 FROM rdb$database UNION ALL - SELECT FIRST 1 4 FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4 FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT FIRST 1 1 as ID FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"" FROM rdb$database UNION ALL SELECT FIRST 1 2 FROM rdb$database UNION ALL SELECT FIRST 1 3 FROM rdb$database UNION ALL - SELECT FIRST 1 4 FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4 FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbioudb01 @@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT FIRST 1 1 as ID, '011' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '011' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT FIRST 1 2 as ID, '02' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 2 as ""ID"", '02' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02' FROM rdb$database UNION ALL SELECT FIRST 1 3, '03' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '04' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT FIRST 1 1 as ID, '001' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '001' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '002' FROM rdb$database UNION ALL SELECT FIRST 1 3, '003' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT FIRST 1 1 as ID, '011' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '011' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT FIRST 1 2 as ID, '02' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 2 as ""ID"", '02' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "01" }, new tbioudb022 { id = 2, name = "02" }, new tbioudb022 { id = 3, name = "03" }, new tbioudb022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02' FROM rdb$database UNION ALL SELECT FIRST 1 3, '03' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '04' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "001" }, new tbioudb022 { id = 2, name = "002" }, new tbioudb022 { id = 3, name = "003" }, new tbioudb022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT FIRST 1 1 as ID, '001' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '001' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '002' FROM rdb$database UNION ALL SELECT FIRST 1 3, '003' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -249,16 +249,16 @@ UNION ALL iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "100001" }, new tbioudb022 { name = "00001" }, new tbioudb022 { id = 2, name = "100002" }, new tbioudb022 { name = "00002" }, new tbioudb022 { id = 3, name = "100003" }, new tbioudb022 { name = "00003" }, new tbioudb022 { id = 4, name = "100004" }, new tbioudb022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT FIRST 1 1 as ID, '100001' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '100001' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '100002' FROM rdb$database UNION ALL SELECT FIRST 1 3, '100003' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '100004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '100004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -287,58 +287,58 @@ UNION ALL var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT FIRST 1 1 as ID1, '01' as ID2, '01' as NAME FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT FIRST 1 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT FIRST 1 1 as ID1, '01' as ID2, '011' as NAME FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT FIRST 1 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT FIRST 1 2 as ID1, '02' as ID2, '02' as NAME FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT FIRST 1 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT FIRST 1 1 as ID1, '01' as ID2, '01' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02', '02' FROM rdb$database UNION ALL SELECT FIRST 1 3, '03', '03' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04', '04' FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT FIRST 1 4, '04', '04' FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT FIRST 1 1 as ID1, '01' as ID2, '001' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02', '002' FROM rdb$database UNION ALL SELECT FIRST 1 3, '03', '003' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04', '004' FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT FIRST 1 4, '04', '004' FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -359,58 +359,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT FIRST 1 1 as ID, '011' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT FIRST 1 2 as ID, '02' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02', 0, current_timestamp FROM rdb$database UNION ALL SELECT FIRST 1 3, '03', 0, current_timestamp FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04', 0, current_timestamp FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '04', 0, current_timestamp FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT FIRST 1 1 as ID, '001' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '002', 0, current_timestamp FROM rdb$database UNION ALL SELECT FIRST 1 3, '003', 0, current_timestamp FROM rdb$database UNION ALL - SELECT FIRST 1 4, '004', 0, current_timestamp FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '004', 0, current_timestamp FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdInsertOrUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdInsertOrUpdateTest.cs index 2164984d..af964065 100644 --- a/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdInsertOrUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Firebird/Curd/FirebirdInsertOrUpdateTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Firebird var iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT FIRST 1 1 as ID FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT FIRST 1 1 as ID FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT FIRST 1 2 as ID FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 2 as ""ID"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT FIRST 1 1 as ID FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"" FROM rdb$database UNION ALL SELECT FIRST 1 2 FROM rdb$database UNION ALL SELECT FIRST 1 3 FROM rdb$database UNION ALL - SELECT FIRST 1 4 FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4 FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT FIRST 1 1 as ID FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"" FROM rdb$database UNION ALL SELECT FIRST 1 2 FROM rdb$database UNION ALL SELECT FIRST 1 3 FROM rdb$database UNION ALL - SELECT FIRST 1 4 FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4 FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbiou01 @@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT FIRST 1 1 as ID, '011' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '011' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT FIRST 1 2 as ID, '02' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 2 as ""ID"", '02' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "01" }, new tbiou02 { id = 2, name = "02" }, new tbiou02 { id = 3, name = "03" }, new tbiou02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02' FROM rdb$database UNION ALL SELECT FIRST 1 3, '03' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '04' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "001" }, new tbiou02 { id = 2, name = "002" }, new tbiou02 { id = 3, name = "003" }, new tbiou02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT FIRST 1 1 as ID, '001' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '001' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '002' FROM rdb$database UNION ALL SELECT FIRST 1 3, '003' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT FIRST 1 1 as ID, '011' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '011' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT FIRST 1 2 as ID, '02' as NAME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 2 as ""ID"", '02' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "01" }, new tbiou022 { id = 2, name = "02" }, new tbiou022 { id = 3, name = "03" }, new tbiou022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02' FROM rdb$database UNION ALL SELECT FIRST 1 3, '03' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '04' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "001" }, new tbiou022 { id = 2, name = "002" }, new tbiou022 { id = 3, name = "003" }, new tbiou022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT FIRST 1 1 as ID, '001' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '001' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '002' FROM rdb$database UNION ALL SELECT FIRST 1 3, '003' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -269,18 +269,18 @@ UNION ALL iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "100001" }, new tbiou022 { name = "00001" }, new tbiou022 { id = 2, name = "100002" }, new tbiou022 { name = "00002" }, new tbiou022 { id = 3, name = "100003" }, new tbiou022 { name = "00003" }, new tbiou022 { id = 4, name = "100004" }, new tbiou022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT FIRST 1 1 as ID, '100001' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '100001' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '100002' FROM rdb$database UNION ALL SELECT FIRST 1 3, '100003' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '100004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '100004' FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -309,68 +309,68 @@ UNION ALL var iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT FIRST 1 1 as ID1, '01' as ID2, '01' as NAME FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT FIRST 1 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT FIRST 1 1 as ID1, '01' as ID2, '011' as NAME FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT FIRST 1 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT FIRST 1 2 as ID1, '02' as ID2, '02' as NAME FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT FIRST 1 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "01" }, new tbiou03 { id1 = 2, id2 = "02", name = "02" }, new tbiou03 { id1 = 3, id2 = "03", name = "03" }, new tbiou03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT FIRST 1 1 as ID1, '01' as ID2, '01' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02', '02' FROM rdb$database UNION ALL SELECT FIRST 1 3, '03', '03' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04', '04' FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT FIRST 1 4, '04', '04' FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT FIRST 1 1 as ID1, '01' as ID2, '001' as NAME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02', '002' FROM rdb$database UNION ALL SELECT FIRST 1 3, '03', '003' FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04', '004' FROM rdb$database ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT FIRST 1 4, '04', '004' FROM rdb$database ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count()); @@ -391,68 +391,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT FIRST 1 1 as ID, '011' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT FIRST 1 2 as ID, '02' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT FIRST 1 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "01" }, new tbiou04 { id = 2, name = "02" }, new tbiou04 { id = 3, name = "03" }, new tbiou04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT FIRST 1 1 as ID, '01' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '02', 0, current_timestamp FROM rdb$database UNION ALL SELECT FIRST 1 3, '03', 0, current_timestamp FROM rdb$database UNION ALL - SELECT FIRST 1 4, '04', 0, current_timestamp FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '04', 0, current_timestamp FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "001" }, new tbiou04 { id = 2, name = "002" }, new tbiou04 { id = 3, name = "003" }, new tbiou04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT FIRST 1 1 as ID, '001' as NAME, 0 as VERSION, current_timestamp as CREATETIME FROM rdb$database +USING (SELECT FIRST 1 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" FROM rdb$database UNION ALL SELECT FIRST 1 2, '002', 0, current_timestamp FROM rdb$database UNION ALL SELECT FIRST 1 3, '003', 0, current_timestamp FROM rdb$database UNION ALL - SELECT FIRST 1 4, '004', 0, current_timestamp FROM rdb$database ) t2 ON (t1.""ID"" = t2.ID) + SELECT FIRST 1 4, '004', 0, current_timestamp FROM rdb$database ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleInsertOrUpdateIfExistsDoNothingTest.cs index d3becb46..6f970f1a 100644 --- a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleInsertOrUpdateIfExistsDoNothingTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Oracle var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 2 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbioudb01 @@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "01" }, new tbioudb022 { id = 2, name = "02" }, new tbioudb022 { id = 3, name = "03" }, new tbioudb022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "001" }, new tbioudb022 { id = 2, name = "002" }, new tbioudb022 { id = 3, name = "003" }, new tbioudb022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -247,16 +247,16 @@ INTO ""TBIOUDB022""(""NAME"") VALUES('004') iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb022 { id = 1, name = "100001" }, new tbioudb022 { name = "00001" }, new tbioudb022 { id = 2, name = "100002" }, new tbioudb022 { name = "00002" }, new tbioudb022 { id = 3, name = "100003" }, new tbioudb022 { name = "00003" }, new tbioudb022 { id = 4, name = "100004" }, new tbioudb022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1 -USING (SELECT 1 as ID, '100001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '100001' as ""NAME"" FROM dual UNION ALL SELECT 2, '100002' FROM dual UNION ALL SELECT 3, '100003' FROM dual UNION ALL - SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -284,58 +284,58 @@ INTO ""TBIOUDB022""(""NAME"") VALUES('00004') var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '011' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '02' FROM dual UNION ALL SELECT 3, '03', '03' FROM dual UNION ALL - SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '002' FROM dual UNION ALL SELECT 3, '03', '003' FROM dual UNION ALL - SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -356,58 +356,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '02', 0, systimestamp FROM dual UNION ALL SELECT 3, '03', 0, systimestamp FROM dual UNION ALL - SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '002', 0, systimestamp FROM dual UNION ALL SELECT 3, '003', 0, systimestamp FROM dual UNION ALL - SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleInsertOrUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleInsertOrUpdateTest.cs index 69ef7b71..e4eb74ce 100644 --- a/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleInsertOrUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/Oracle/Curd/OracleInsertOrUpdateTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.Oracle var iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 2 as ID FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID FROM dual +USING (SELECT 1 as ""ID"" FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL - SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbiou01 @@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "01" }, new tbiou02 { id = 2, name = "02" }, new tbiou02 { id = 3, name = "03" }, new tbiou02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "001" }, new tbiou02 { id = 2, name = "002" }, new tbiou02 { id = 3, name = "003" }, new tbiou02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '011' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou022 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 2 as ID, '02' as NAME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "01" }, new tbiou022 { id = 2, name = "02" }, new tbiou022 { id = 3, name = "03" }, new tbiou022 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '01' as NAME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02' FROM dual UNION ALL SELECT 3, '03' FROM dual UNION ALL - SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "001" }, new tbiou022 { id = 2, name = "002" }, new tbiou022 { id = 3, name = "003" }, new tbiou022 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '002' FROM dual UNION ALL SELECT 3, '003' FROM dual UNION ALL - SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); //Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -267,18 +267,18 @@ INTO ""TBIOU022""(""NAME"") VALUES('004') iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou022 { id = 1, name = "100001" }, new tbiou022 { name = "00001" }, new tbiou022 { id = 2, name = "100002" }, new tbiou022 { name = "00002" }, new tbiou022 { id = 3, name = "100003" }, new tbiou022 { name = "00003" }, new tbiou022 { id = 4, name = "100004" }, new tbiou022 { name = "00004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU022"" t1 -USING (SELECT 1 as ID, '100001' as NAME FROM dual +USING (SELECT 1 as ""ID"", '100001' as ""NAME"" FROM dual UNION ALL SELECT 2, '100002' FROM dual UNION ALL SELECT 3, '100003' FROM dual UNION ALL - SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '100004' FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME) + values (t2.""ID"", t2.""NAME"") ; @@ -306,68 +306,68 @@ INTO ""TBIOU022""(""NAME"") VALUES('00004') var iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '011' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "01" }, new tbiou03 { id1 = 2, id2 = "02", name = "02" }, new tbiou03 { id1 = 3, id2 = "03", name = "03" }, new tbiou03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '02' FROM dual UNION ALL SELECT 3, '03', '03' FROM dual UNION ALL - SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME FROM dual +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" FROM dual UNION ALL SELECT 2, '02', '002' FROM dual UNION ALL SELECT 3, '03', '003' FROM dual UNION ALL - SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' FROM dual ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count()); @@ -388,68 +388,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "01" }, new tbiou04 { id = 2, name = "02" }, new tbiou04 { id = 3, name = "03" }, new tbiou04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '02', 0, systimestamp FROM dual UNION ALL SELECT 3, '03', 0, systimestamp FROM dual UNION ALL - SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "001" }, new tbiou04 { id = 2, name = "002" }, new tbiou04 { id = 3, name = "003" }, new tbiou04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, systimestamp as CREATETIME FROM dual +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", systimestamp as ""CREATETIME"" FROM dual UNION ALL SELECT 2, '002', 0, systimestamp FROM dual UNION ALL SELECT 3, '003', 0, systimestamp FROM dual UNION ALL - SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, systimestamp FROM dual ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongInsertOrUpdateIfExistsDoNothingTest.cs index c9a8fc85..d1c09a76 100644 --- a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongInsertOrUpdateIfExistsDoNothingTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.ShenTong var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 2 as ID ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID +USING (SELECT 1 as ""ID"" UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1 -USING (SELECT 1 as ID +USING (SELECT 1 as ""ID"" UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbioudb01 @@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '01' as NAME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '011' as NAME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 2 as ID, '02' as NAME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '01' as NAME +USING (SELECT 1 as ""ID"", '01' as ""NAME"" UNION ALL SELECT 2, '02' UNION ALL SELECT 3, '03' UNION ALL - SELECT 4, '04' ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1 -USING (SELECT 1 as ID, '001' as NAME +USING (SELECT 1 as ""ID"", '001' as ""NAME"" UNION ALL SELECT 2, '002' UNION ALL SELECT 3, '003' UNION ALL - SELECT 4, '004' ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -152,58 +152,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '011' as NAME ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" UNION ALL SELECT 2, '02', '02' UNION ALL SELECT 3, '03', '03' UNION ALL - SELECT 4, '04', '04' ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" UNION ALL SELECT 2, '02', '002' UNION ALL SELECT 3, '03', '003' UNION ALL - SELECT 4, '04', '004' ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -224,58 +224,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, current_timestamp as CREATETIME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, current_timestamp as CREATETIME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, current_timestamp as CREATETIME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, current_timestamp as CREATETIME +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" UNION ALL SELECT 2, '02', 0, current_timestamp UNION ALL SELECT 3, '03', 0, current_timestamp UNION ALL - SELECT 4, '04', 0, current_timestamp ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, current_timestamp ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, current_timestamp as CREATETIME +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" UNION ALL SELECT 2, '002', 0, current_timestamp UNION ALL SELECT 3, '003', 0, current_timestamp UNION ALL - SELECT 4, '004', 0, current_timestamp ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, current_timestamp ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongInsertOrUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongInsertOrUpdateTest.cs index 801851ae..37e4670f 100644 --- a/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongInsertOrUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/ShenTong/Curd/ShenTongInsertOrUpdateTest.cs @@ -17,58 +17,58 @@ namespace FreeSql.Tests.ShenTong var iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 2 as ID ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID +USING (SELECT 1 as ""ID"" UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU01"" t1 -USING (SELECT 1 as ID +USING (SELECT 1 as ""ID"" UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4 ) t2 ON (t1.""ID"" = t2.""ID"") WHEN NOT MATCHED THEN insert (""ID"") - values (t2.ID)", sql); + values (t2.""ID"")", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbiou01 @@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '011' as NAME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 2 as ID, '02' as NAME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "01" }, new tbiou02 { id = 2, name = "02" }, new tbiou02 { id = 3, name = "03" }, new tbiou02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '01' as NAME +USING (SELECT 1 as ""ID"", '01' as ""NAME"" UNION ALL SELECT 2, '02' UNION ALL SELECT 3, '03' UNION ALL - SELECT 4, '04' ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04' ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "001" }, new tbiou02 { id = 2, name = "002" }, new tbiou02 { id = 3, name = "003" }, new tbiou02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU02"" t1 -USING (SELECT 1 as ID, '001' as NAME +USING (SELECT 1 as ""ID"", '001' as ""NAME"" UNION ALL SELECT 2, '002' UNION ALL SELECT 3, '003' UNION ALL - SELECT 4, '004' ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004' ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID"", ""NAME"") - values (t2.ID, t2.NAME)", sql); + values (t2.""ID"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -162,68 +162,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '011' as NAME ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '011' as ""NAME"" ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 2 as ID1, '02' as ID2, '02' as NAME ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) +USING (SELECT 2 as ""ID1"", '02' as ""ID2"", '02' as ""NAME"" ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "01" }, new tbiou03 { id1 = 2, id2 = "02", name = "02" }, new tbiou03 { id1 = 3, id2 = "03", name = "03" }, new tbiou03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '01' as NAME +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '01' as ""NAME"" UNION ALL SELECT 2, '02', '02' UNION ALL SELECT 3, '03', '03' UNION ALL - SELECT 4, '04', '04' ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '04' ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU03"" t1 -USING (SELECT 1 as ID1, '01' as ID2, '001' as NAME +USING (SELECT 1 as ""ID1"", '01' as ""ID2"", '001' as ""NAME"" UNION ALL SELECT 2, '02', '002' UNION ALL SELECT 3, '03', '003' UNION ALL - SELECT 4, '04', '004' ) t2 ON (t1.""ID1"" = t2.ID1 AND t1.""ID2"" = t2.ID2) + SELECT 4, '04', '004' ) t2 ON (t1.""ID1"" = t2.""ID1"" AND t1.""ID2"" = t2.""ID2"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME + update set ""NAME"" = t2.""NAME"" WHEN NOT MATCHED THEN insert (""ID1"", ""ID2"", ""NAME"") - values (t2.ID1, t2.ID2, t2.NAME)", sql); + values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count()); @@ -244,68 +244,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, current_timestamp as CREATETIME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '011' as NAME, 0 as VERSION, current_timestamp as CREATETIME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 1 as ""ID"", '011' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 2 as ID, '02' as NAME, 0 as VERSION, current_timestamp as CREATETIME ) t2 ON (t1.""ID"" = t2.ID) +USING (SELECT 2 as ""ID"", '02' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "01" }, new tbiou04 { id = 2, name = "02" }, new tbiou04 { id = 3, name = "03" }, new tbiou04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '01' as NAME, 0 as VERSION, current_timestamp as CREATETIME +USING (SELECT 1 as ""ID"", '01' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" UNION ALL SELECT 2, '02', 0, current_timestamp UNION ALL SELECT 3, '03', 0, current_timestamp UNION ALL - SELECT 4, '04', 0, current_timestamp ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '04', 0, current_timestamp ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "001" }, new tbiou04 { id = 2, name = "002" }, new tbiou04 { id = 3, name = "003" }, new tbiou04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO ""TBIOU04"" t1 -USING (SELECT 1 as ID, '001' as NAME, 0 as VERSION, current_timestamp as CREATETIME +USING (SELECT 1 as ""ID"", '001' as ""NAME"", 0 as ""VERSION"", current_timestamp as ""CREATETIME"" UNION ALL SELECT 2, '002', 0, current_timestamp UNION ALL SELECT 3, '003', 0, current_timestamp UNION ALL - SELECT 4, '004', 0, current_timestamp ) t2 ON (t1.""ID"" = t2.ID) + SELECT 4, '004', 0, current_timestamp ) t2 ON (t1.""ID"" = t2.""ID"") WHEN MATCHED THEN - update set ""NAME"" = t2.NAME, ""VERSION"" = t1.""VERSION"" + 1 + update set ""NAME"" = t2.""NAME"", ""VERSION"" = t1.""VERSION"" + 1 WHEN NOT MATCHED THEN insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"") - values (t2.ID, t2.NAME, t2.VERSION, t2.CREATETIME)", sql); + values (t2.""ID"", t2.""NAME"", t2.""VERSION"", t2.""CREATETIME"")", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertOrUpdateIfExistsDoNothingTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertOrUpdateIfExistsDoNothingTest.cs index 350ce5b8..7242f4b5 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertOrUpdateIfExistsDoNothingTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertOrUpdateIfExistsDoNothingTest.cs @@ -19,58 +19,58 @@ namespace FreeSql.Tests.SqlServer var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 1 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 1 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 2 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 1 as id +USING (SELECT 1 as [id] UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.[id] = t2.id) + SELECT 4 ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb01] t1 -USING (SELECT 1 as id +USING (SELECT 1 as [id] UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.[id] = t2.id) + SELECT 4 ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbioudb01 @@ -85,58 +85,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 1 as id, N'01' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 1 as id, N'011' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 2 as id, N'02' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "01" }, new tbioudb02 { id = 2, name = "02" }, new tbioudb02 { id = 3, name = "03" }, new tbioudb02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 1 as id, N'01' as name +USING (SELECT 1 as [id], N'01' as [name] UNION ALL SELECT 2, N'02' UNION ALL SELECT 3, N'03' UNION ALL - SELECT 4, N'04' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb02 { id = 1, name = "001" }, new tbioudb02 { id = 2, name = "002" }, new tbioudb02 { id = 3, name = "003" }, new tbioudb02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb02] t1 -USING (SELECT 1 as id, N'001' as name +USING (SELECT 1 as [id], N'001' as [name] UNION ALL SELECT 2, N'002' UNION ALL SELECT 3, N'003' UNION ALL - SELECT 4, N'004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); @@ -154,10 +154,10 @@ WHEN NOT MATCHED THEN var sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'01' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -165,10 +165,10 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'011' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(0, iou.ExecuteAffrows()); @@ -176,10 +176,10 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 2 as id, N'02' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -187,16 +187,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'01' as name +USING (SELECT 1 as [id], N'01' as [name] UNION ALL SELECT 2, N'02' UNION ALL SELECT 3, N'03' UNION ALL - SELECT 4, N'04' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(2, iou.ExecuteAffrows()); @@ -204,16 +204,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'001' as name +USING (SELECT 1 as [id], N'001' as [name] UNION ALL SELECT 2, N'002' UNION ALL SELECT 3, N'003' UNION ALL - SELECT 4, N'004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF;", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); @@ -250,16 +250,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON; MERGE INTO [tbioudb022] t1 -USING (SELECT 1 as id, N'100001' as name +USING (SELECT 1 as [id], N'100001' as [name] UNION ALL SELECT 2, N'100002' UNION ALL SELECT 3, N'100003' UNION ALL - SELECT 4, N'100004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'100004' ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbioudb022] OFF; ; @@ -283,58 +283,58 @@ INSERT INTO [tbioudb022]([name]) VALUES(N'00001'), (N'00002'), (N'00003'), (N'00 var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'01' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 1 as [id1], N'01' as [id2], N'01' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'011' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 1 as [id1], N'01' as [id2], N'011' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 2 as id1, N'02' as id2, N'02' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 2 as [id1], N'02' as [id2], N'02' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "01" }, new tbioudb03 { id1 = 2, id2 = "02", name = "02" }, new tbioudb03 { id1 = 3, id2 = "03", name = "03" }, new tbioudb03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'01' as name +USING (SELECT 1 as [id1], N'01' as [id2], N'01' as [name] UNION ALL SELECT 2, N'02', N'02' UNION ALL SELECT 3, N'03', N'03' UNION ALL - SELECT 4, N'04', N'04' ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) + SELECT 4, N'04', N'04' ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb03 { id1 = 1, id2 = "01", name = "001" }, new tbioudb03 { id1 = 2, id2 = "02", name = "002" }, new tbioudb03 { id1 = 3, id2 = "03", name = "003" }, new tbioudb03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'001' as name +USING (SELECT 1 as [id1], N'01' as [id2], N'001' as [name] UNION ALL SELECT 2, N'02', N'002' UNION ALL SELECT 3, N'03', N'003' UNION ALL - SELECT 4, N'04', N'004' ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) + SELECT 4, N'04', N'004' ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count()); @@ -355,58 +355,58 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 1 as id, N'01' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 1 as id, N'011' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 2 as id, N'02' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "01" }, new tbioudb04 { id = 2, name = "02" }, new tbioudb04 { id = 3, name = "03" }, new tbioudb04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 1 as id, N'01' as name, 0 as version, getdate() as CreateTime +USING (SELECT 1 as [id], N'01' as [name], 0 as [version], getdate() as [CreateTime] UNION ALL SELECT 2, N'02', 0, getdate() UNION ALL SELECT 3, N'03', 0, getdate() UNION ALL - SELECT 4, N'04', 0, getdate() ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04', 0, getdate() ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().IfExistsDoNothing().SetSource(new[] { new tbioudb04 { id = 1, name = "001" }, new tbioudb04 { id = 2, name = "002" }, new tbioudb04 { id = 3, name = "003" }, new tbioudb04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbioudb04] t1 -USING (SELECT 1 as id, N'001' as name, 0 as version, getdate() as CreateTime +USING (SELECT 1 as [id], N'001' as [name], 0 as [version], getdate() as [CreateTime] UNION ALL SELECT 2, N'002', 0, getdate() UNION ALL SELECT 3, N'003', 0, getdate() UNION ALL - SELECT 4, N'004', 0, getdate() ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004', 0, getdate() ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count()); diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertOrUpdateTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertOrUpdateTest.cs index 7ea53b8e..3342e96e 100644 --- a/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertOrUpdateTest.cs +++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/Curd/SqlServerInsertOrUpdateTest.cs @@ -19,58 +19,58 @@ namespace FreeSql.Tests.SqlServer var iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 1 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 1 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 1 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou01 { id = 2 }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 2 as id ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id] ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 1 as id +USING (SELECT 1 as [id] UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.[id] = t2.id) + SELECT 4 ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(2, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou01] t1 -USING (SELECT 1 as id +USING (SELECT 1 as [id] UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL - SELECT 4 ) t2 ON (t1.[id] = t2.id) + SELECT 4 ) t2 ON (t1.[id] = t2.[id]) WHEN NOT MATCHED THEN insert ([id]) - values (t2.id);", sql); + values (t2.[id]);", sql); Assert.Equal(0, iou.ExecuteAffrows()); } class tbiou01 @@ -85,68 +85,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 1 as id, N'01' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 1 as id, N'011' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou02 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 2 as id, N'02' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "01" }, new tbiou02 { id = 2, name = "02" }, new tbiou02 { id = 3, name = "03" }, new tbiou02 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 1 as id, N'01' as name +USING (SELECT 1 as [id], N'01' as [name] UNION ALL SELECT 2, N'02' UNION ALL SELECT 3, N'03' UNION ALL - SELECT 4, N'04' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou02 { id = 1, name = "001" }, new tbiou02 { id = 2, name = "002" }, new tbiou02 { id = 3, name = "003" }, new tbiou02 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou02] t1 -USING (SELECT 1 as id, N'001' as name +USING (SELECT 1 as [id], N'001' as [name] UNION ALL SELECT 2, N'002' UNION ALL SELECT 3, N'003' UNION ALL - SELECT 4, N'004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);", sql); + values (t2.[id], t2.[name]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); @@ -164,12 +164,12 @@ WHEN NOT MATCHED THEN var sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'01' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -177,12 +177,12 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'011' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -190,12 +190,12 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 2 as id, N'02' as name ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(1, iou.ExecuteAffrows()); @@ -203,18 +203,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'01' as name +USING (SELECT 1 as [id], N'01' as [name] UNION ALL SELECT 2, N'02' UNION ALL SELECT 3, N'03' UNION ALL - SELECT 4, N'04' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(4, iou.ExecuteAffrows()); @@ -222,18 +222,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'001' as name +USING (SELECT 1 as [id], N'001' as [name] UNION ALL SELECT 2, N'002' UNION ALL SELECT 3, N'003' UNION ALL - SELECT 4, N'004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF;", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); @@ -270,18 +270,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql); sql = iou.ToSql(); Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON; MERGE INTO [tbiou022] t1 -USING (SELECT 1 as id, N'100001' as name +USING (SELECT 1 as [id], N'100001' as [name] UNION ALL SELECT 2, N'100002' UNION ALL SELECT 3, N'100003' UNION ALL - SELECT 4, N'100004' ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'100004' ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id], [name]) - values (t2.id, t2.name);; + values (t2.[id], t2.[name]);; SET IDENTITY_INSERT [tbiou022] OFF; ; @@ -305,68 +305,68 @@ INSERT INTO [tbiou022]([name]) VALUES(N'00001'), (N'00002'), (N'00003'), (N'0000 var iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'01' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 1 as [id1], N'01' as [id2], N'01' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'011' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 1 as [id1], N'01' as [id2], N'011' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 2 as id1, N'02' as id2, N'02' as name ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) +USING (SELECT 2 as [id1], N'02' as [id2], N'02' as [name] ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "01" }, new tbiou03 { id1 = 2, id2 = "02", name = "02" }, new tbiou03 { id1 = 3, id2 = "03", name = "03" }, new tbiou03 { id1 = 4, id2 = "04", name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'01' as name +USING (SELECT 1 as [id1], N'01' as [id2], N'01' as [name] UNION ALL SELECT 2, N'02', N'02' UNION ALL SELECT 3, N'03', N'03' UNION ALL - SELECT 4, N'04', N'04' ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) + SELECT 4, N'04', N'04' ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou03 { id1 = 1, id2 = "01", name = "001" }, new tbiou03 { id1 = 2, id2 = "02", name = "002" }, new tbiou03 { id1 = 3, id2 = "03", name = "003" }, new tbiou03 { id1 = 4, id2 = "04", name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou03] t1 -USING (SELECT 1 as id1, N'01' as id2, N'001' as name +USING (SELECT 1 as [id1], N'01' as [id2], N'001' as [name] UNION ALL SELECT 2, N'02', N'002' UNION ALL SELECT 3, N'03', N'003' UNION ALL - SELECT 4, N'04', N'004' ) t2 ON (t1.[id1] = t2.id1 AND t1.[id2] = t2.id2) + SELECT 4, N'04', N'004' ) t2 ON (t1.[id1] = t2.[id1] AND t1.[id2] = t2.[id2]) WHEN MATCHED THEN - update set [name] = t2.name + update set [name] = t2.[name] WHEN NOT MATCHED THEN insert ([id1], [id2], [name]) - values (t2.id1, t2.id2, t2.name);", sql); + values (t2.[id1], t2.[id2], t2.[name]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => a.id1 == 1 && a.id2 == "01" || a.id1 == 2 && a.id2 == "02" || a.id1 == 3 && a.id2 == "03" || a.id1 == 4 && a.id2 == "04").ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count()); @@ -387,68 +387,68 @@ WHEN NOT MATCHED THEN var iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "01" }); var sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 1 as id, N'01' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'01' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 1, name = "011" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 1 as id, N'011' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 1 as [id], N'011' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new tbiou04 { id = 2, name = "02" }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 2 as id, N'02' as name, 0 as version, getdate() as CreateTime ) t2 ON (t1.[id] = t2.id) +USING (SELECT 2 as [id], N'02' as [name], 0 as [version], getdate() as [CreateTime] ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(1, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "01" }, new tbiou04 { id = 2, name = "02" }, new tbiou04 { id = 3, name = "03" }, new tbiou04 { id = 4, name = "04" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 1 as id, N'01' as name, 0 as version, getdate() as CreateTime +USING (SELECT 1 as [id], N'01' as [name], 0 as [version], getdate() as [CreateTime] UNION ALL SELECT 2, N'02', 0, getdate() UNION ALL SELECT 3, N'03', 0, getdate() UNION ALL - SELECT 4, N'04', 0, getdate() ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'04', 0, getdate() ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); iou = fsql.InsertOrUpdate().SetSource(new[] { new tbiou04 { id = 1, name = "001" }, new tbiou04 { id = 2, name = "002" }, new tbiou04 { id = 3, name = "003" }, new tbiou04 { id = 4, name = "004" } }); sql = iou.ToSql(); Assert.Equal(@"MERGE INTO [tbiou04] t1 -USING (SELECT 1 as id, N'001' as name, 0 as version, getdate() as CreateTime +USING (SELECT 1 as [id], N'001' as [name], 0 as [version], getdate() as [CreateTime] UNION ALL SELECT 2, N'002', 0, getdate() UNION ALL SELECT 3, N'003', 0, getdate() UNION ALL - SELECT 4, N'004', 0, getdate() ) t2 ON (t1.[id] = t2.id) + SELECT 4, N'004', 0, getdate() ) t2 ON (t1.[id] = t2.[id]) WHEN MATCHED THEN - update set [name] = t2.name, [version] = t1.[version] + 1 + update set [name] = t2.[name], [version] = t1.[version] + 1 WHEN NOT MATCHED THEN insert ([id], [name], [version], [CreateTime]) - values (t2.id, t2.name, t2.version, t2.CreateTime);", sql); + values (t2.[id], t2.[name], t2.[version], t2.[CreateTime]);", sql); Assert.Equal(4, iou.ExecuteAffrows()); var lst = fsql.Select().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList(); Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count()); diff --git a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs index 68bfc232..ef66c502 100644 --- a/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs +++ b/FreeSql/Internal/CommonProvider/InsertOrUpdateProvider.cs @@ -169,7 +169,7 @@ namespace FreeSql.Internal.CommonProvider object val = col.GetDbValue(d); sb.Append(_commonUtils.RewriteColumn(col, _commonUtils.GetNoneParamaterSqlValue(dbParams, "cu", col, col.Attribute.MapType, val))); } - if (didx == 0) sb.Append(" as ").Append(col.Attribute.Name); + if (didx == 0) sb.Append(" as ").Append(_commonUtils.QuoteSqlName(col.Attribute.Name)); ++colidx2; } switch (_orm.Ado.DataType) diff --git a/Providers/FreeSql.Provider.Dameng/Curd/DamengInsertOrUpdate.cs b/Providers/FreeSql.Provider.Dameng/Curd/DamengInsertOrUpdate.cs index d28c3773..d069b5bf 100644 --- a/Providers/FreeSql.Provider.Dameng/Curd/DamengInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Dameng/Curd/DamengInsertOrUpdate.cs @@ -35,7 +35,7 @@ namespace FreeSql.Dameng.Curd var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING ("); WriteSourceSelectUnionAll(data, sb, dbParams); - sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}"))).Append(") \r\n"); + sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(") \r\n"); var cols = _table.Columns.Values.Where(a => a.Attribute.IsPrimary == false && a.Attribute.CanUpdate == true && _updateIgnore.ContainsKey(a.Attribute.Name) == false); if (_doNothing == false && cols.Any()) @@ -43,14 +43,14 @@ namespace FreeSql.Dameng.Curd .Append(" update set ").Append(string.Join(", ", cols.Select(a => a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ? $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} + 1" : - $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}" + $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}" ))).Append(" \r\n"); cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true); if (cols.Any()) sb.Append("WHEN NOT MATCHED THEN \r\n") .Append(" insert (").Append(string.Join(", ", cols.Select(a => _commonUtils.QuoteSqlName(a.Attribute.Name)))).Append(") \r\n") - .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{a.Attribute.Name}"))).Append(")"); + .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(")"); return sb.ToString(); } diff --git a/Providers/FreeSql.Provider.Firebird/Curd/FirebirdInsertOrUpdate.cs b/Providers/FreeSql.Provider.Firebird/Curd/FirebirdInsertOrUpdate.cs index 33a3883c..4d45fb34 100644 --- a/Providers/FreeSql.Provider.Firebird/Curd/FirebirdInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Firebird/Curd/FirebirdInsertOrUpdate.cs @@ -35,7 +35,7 @@ namespace FreeSql.Firebird.Curd var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING ("); WriteSourceSelectUnionAll(data, sb, dbParams); - sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}"))).Append(") \r\n"); + sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(") \r\n"); var cols = _table.Columns.Values.Where(a => a.Attribute.IsPrimary == false && a.Attribute.CanUpdate == true && _updateIgnore.ContainsKey(a.Attribute.Name) == false); if (_doNothing == false && cols.Any()) @@ -43,14 +43,14 @@ namespace FreeSql.Firebird.Curd .Append(" update set ").Append(string.Join(", ", cols.Select(a => a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ? $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} + 1" : - $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}" + $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}" ))).Append(" \r\n"); cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true); if (cols.Any()) sb.Append("WHEN NOT MATCHED THEN \r\n") .Append(" insert (").Append(string.Join(", ", cols.Select(a => _commonUtils.QuoteSqlName(a.Attribute.Name)))).Append(") \r\n") - .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{a.Attribute.Name}"))).Append(")"); + .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(")"); return sb.ToString(); } diff --git a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsertOrUpdate.cs b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsertOrUpdate.cs index 0cb0719e..abf627c7 100644 --- a/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/Dameng/Curd/OdbcDamengInsertOrUpdate.cs @@ -35,7 +35,7 @@ namespace FreeSql.Odbc.Dameng var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING ("); WriteSourceSelectUnionAll(data, sb, dbParams); - sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}"))).Append(") \r\n"); + sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(") \r\n"); var cols = _table.Columns.Values.Where(a => a.Attribute.IsPrimary == false && a.Attribute.CanUpdate == true && _updateIgnore.ContainsKey(a.Attribute.Name) == false); if (_doNothing == false && cols.Any()) @@ -43,14 +43,14 @@ namespace FreeSql.Odbc.Dameng .Append(" update set ").Append(string.Join(", ", cols.Select(a => a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ? $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} + 1" : - $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}" + $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}" ))).Append(" \r\n"); cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true); if (cols.Any()) sb.Append("WHEN NOT MATCHED THEN \r\n") .Append(" insert (").Append(string.Join(", ", cols.Select(a => _commonUtils.QuoteSqlName(a.Attribute.Name)))).Append(") \r\n") - .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{a.Attribute.Name}"))).Append(")"); + .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(")"); return sb.ToString(); } diff --git a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsertOrUpdate.cs b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsertOrUpdate.cs index 3c0cda03..731ad1c7 100644 --- a/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/Oracle/Curd/OdbcOracleInsertOrUpdate.cs @@ -35,7 +35,7 @@ namespace FreeSql.Odbc.Oracle var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING ("); WriteSourceSelectUnionAll(data, sb, dbParams); - sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}"))).Append(") \r\n"); + sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(") \r\n"); var cols = _table.Columns.Values.Where(a => a.Attribute.IsPrimary == false && a.Attribute.CanUpdate == true && _updateIgnore.ContainsKey(a.Attribute.Name) == false); if (_doNothing == false && cols.Any()) @@ -43,14 +43,14 @@ namespace FreeSql.Odbc.Oracle .Append(" update set ").Append(string.Join(", ", cols.Select(a => a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ? $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} + 1" : - $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}" + $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}" ))).Append(" \r\n"); cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true); if (cols.Any()) sb.Append("WHEN NOT MATCHED THEN \r\n") .Append(" insert (").Append(string.Join(", ", cols.Select(a => _commonUtils.QuoteSqlName(a.Attribute.Name)))).Append(") \r\n") - .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{a.Attribute.Name}"))).Append(")"); + .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(")"); return sb.ToString(); } diff --git a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsertOrUpdate.cs b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsertOrUpdate.cs index a7f80b15..0132502c 100644 --- a/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Odbc/SqlServer/Curd/OdbcSqlServerInsertOrUpdate.cs @@ -37,7 +37,7 @@ namespace FreeSql.Odbc.SqlServer if (IdentityColumn != null) sb.Append("SET IDENTITY_INSERT ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" ON;\r\n"); sb.Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING ("); WriteSourceSelectUnionAll(data, sb, dbParams); - sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}"))).Append(") \r\n"); + sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(") \r\n"); var cols = _table.Columns.Values.Where(a => a.Attribute.IsPrimary == false && a.Attribute.CanUpdate == true && _updateIgnore.ContainsKey(a.Attribute.Name) == false); if (_doNothing == false && cols.Any()) @@ -45,14 +45,14 @@ namespace FreeSql.Odbc.SqlServer .Append(" update set ").Append(string.Join(", ", cols.Select(a => a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ? $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} + 1" : - $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}" + $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}" ))).Append(" \r\n"); cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true); if (cols.Any()) sb.Append("WHEN NOT MATCHED THEN \r\n") .Append(" insert (").Append(string.Join(", ", cols.Select(a => _commonUtils.QuoteSqlName(a.Attribute.Name)))).Append(") \r\n") - .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{a.Attribute.Name}"))).Append(");"); + .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(");"); if (IdentityColumn != null) sb.Append(";\r\nSET IDENTITY_INSERT ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" OFF;"); diff --git a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsertOrUpdate.cs b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsertOrUpdate.cs index 07d5f3e6..f569f89a 100644 --- a/Providers/FreeSql.Provider.Oracle/Curd/OracleInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.Oracle/Curd/OracleInsertOrUpdate.cs @@ -35,7 +35,7 @@ namespace FreeSql.Oracle.Curd var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING ("); WriteSourceSelectUnionAll(data, sb, dbParams); - sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}"))).Append(") \r\n"); + sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(") \r\n"); var cols = _table.Columns.Values.Where(a => a.Attribute.IsPrimary == false && a.Attribute.CanUpdate == true && _updateIgnore.ContainsKey(a.Attribute.Name) == false); if (_doNothing == false && cols.Any()) @@ -43,14 +43,14 @@ namespace FreeSql.Oracle.Curd .Append(" update set ").Append(string.Join(", ", cols.Select(a => a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ? $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} + 1" : - $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}" + $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}" ))).Append(" \r\n"); cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true); if (cols.Any()) sb.Append("WHEN NOT MATCHED THEN \r\n") .Append(" insert (").Append(string.Join(", ", cols.Select(a => _commonUtils.QuoteSqlName(a.Attribute.Name)))).Append(") \r\n") - .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{a.Attribute.Name}"))).Append(")"); + .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(")"); return sb.ToString(); } diff --git a/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongInsertOrUpdate.cs b/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongInsertOrUpdate.cs index 3043cfd5..47a7f022 100644 --- a/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.ShenTong/Curd/ShenTongInsertOrUpdate.cs @@ -35,7 +35,7 @@ namespace FreeSql.ShenTong.Curd var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING ("); WriteSourceSelectUnionAll(data, sb, dbParams); - sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}"))).Append(") \r\n"); + sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(") \r\n"); var cols = _table.Columns.Values.Where(a => a.Attribute.IsPrimary == false && a.Attribute.CanUpdate == true && _updateIgnore.ContainsKey(a.Attribute.Name) == false); if (_doNothing == false && cols.Any()) @@ -43,14 +43,14 @@ namespace FreeSql.ShenTong.Curd .Append(" update set ").Append(string.Join(", ", cols.Select(a => a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ? $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} + 1" : - $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}" + $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}" ))).Append(" \r\n"); cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true); if (cols.Any()) sb.Append("WHEN NOT MATCHED THEN \r\n") .Append(" insert (").Append(string.Join(", ", cols.Select(a => _commonUtils.QuoteSqlName(a.Attribute.Name)))).Append(") \r\n") - .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{a.Attribute.Name}"))).Append(")"); + .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(")"); return sb.ToString(); } diff --git a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsertOrUpdate.cs b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsertOrUpdate.cs index 09e455c0..f672ded9 100644 --- a/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsertOrUpdate.cs +++ b/Providers/FreeSql.Provider.SqlServer/Curd/SqlServerInsertOrUpdate.cs @@ -37,7 +37,7 @@ namespace FreeSql.SqlServer.Curd if (IdentityColumn != null) sb.Append("SET IDENTITY_INSERT ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" ON;\r\n"); sb.Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING ("); WriteSourceSelectUnionAll(data, sb, dbParams); - sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}"))).Append(") \r\n"); + sb.Append(" ) t2 ON (").Append(string.Join(" AND ", _table.Primarys.Select(a => $"t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(") \r\n"); var cols = _table.Columns.Values.Where(a => a.Attribute.IsPrimary == false && a.Attribute.CanUpdate == true && _updateIgnore.ContainsKey(a.Attribute.Name) == false); if (_doNothing == false && cols.Any()) @@ -45,14 +45,14 @@ namespace FreeSql.SqlServer.Curd .Append(" update set ").Append(string.Join(", ", cols.Select(a => a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ? $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t1.{_commonUtils.QuoteSqlName(a.Attribute.Name)} + 1" : - $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{a.Attribute.Name}" + $"{_commonUtils.QuoteSqlName(a.Attribute.Name)} = t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}" ))).Append(" \r\n"); cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true); if (cols.Any()) sb.Append("WHEN NOT MATCHED THEN \r\n") .Append(" insert (").Append(string.Join(", ", cols.Select(a => _commonUtils.QuoteSqlName(a.Attribute.Name)))).Append(") \r\n") - .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{a.Attribute.Name}"))).Append(");"); + .Append(" values (").Append(string.Join(", ", cols.Select(a => $"t2.{_commonUtils.QuoteSqlName(a.Attribute.Name)}"))).Append(");"); if (IdentityColumn != null) sb.Append(";\r\nSET IDENTITY_INSERT ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" OFF;");