mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 02:32:50 +08:00
- 修改 MERGE INTO 别名与 SQL 关键字冲突的 bug;#816
This commit is contained in:
parent
d00273ca77
commit
5213bd0224
@ -512,14 +512,5 @@
|
|||||||
<param name="that"></param>
|
<param name="that"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:Microsoft.Extensions.DependencyInjection.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
|
|
||||||
<summary>
|
|
||||||
批量注入 Repository,可以参考代码自行调整
|
|
||||||
</summary>
|
|
||||||
<param name="services"></param>
|
|
||||||
<param name="globalDataFilter"></param>
|
|
||||||
<param name="assemblies"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
</members>
|
</members>
|
||||||
</doc>
|
</doc>
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.Dameng
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
}
|
}
|
||||||
class tbioudn01
|
class tbioudn01
|
||||||
@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudn02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudn02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudn022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudn022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -247,16 +247,16 @@ INTO ""TBIOUDN022""(""NAME"") VALUES('004')
|
|||||||
iou = fsql.InsertOrUpdate<tbioudn022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '100002' FROM dual
|
SELECT 2, '100002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003' FROM dual
|
SELECT 3, '100003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
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<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "02", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "02", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02' FROM dual
|
SELECT 2, '02', '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03' FROM dual
|
SELECT 3, '03', '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002' FROM dual
|
SELECT 2, '02', '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003' FROM dual
|
SELECT 3, '03', '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudn03>().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();
|
var lst = fsql.Select<tbioudn03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -356,58 +356,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, systimestamp FROM dual
|
SELECT 2, '02', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, systimestamp FROM dual
|
SELECT 3, '03', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, systimestamp FROM dual
|
SELECT 2, '002', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, systimestamp FROM dual
|
SELECT 3, '003', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudn04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudn04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.Dameng
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
}
|
}
|
||||||
class tbiou01
|
class tbiou01
|
||||||
@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -267,18 +267,18 @@ INTO ""TBIOU022""(""NAME"") VALUES('004')
|
|||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '100002' FROM dual
|
SELECT 2, '100002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003' FROM dual
|
SELECT 3, '100003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
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<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02' FROM dual
|
SELECT 2, '02', '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03' FROM dual
|
SELECT 3, '03', '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002' FROM dual
|
SELECT 2, '02', '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003' FROM dual
|
SELECT 3, '03', '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou03>().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();
|
var lst = fsql.Select<tbiou03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count());
|
||||||
@ -388,68 +388,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, systimestamp FROM dual
|
SELECT 2, '02', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, systimestamp FROM dual
|
SELECT 3, '03', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, systimestamp FROM dual
|
SELECT 2, '002', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, systimestamp FROM dual
|
SELECT 3, '003', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.Oracle
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
}
|
}
|
||||||
class tbioudb01
|
class tbioudb01
|
||||||
@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -247,16 +247,16 @@ INTO ""TBIOUDB022""(""NAME"") VALUES('004')
|
|||||||
iou = fsql.InsertOrUpdate<tbioudb022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '100002' FROM dual
|
SELECT 2, '100002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003' FROM dual
|
SELECT 3, '100003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
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<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02' FROM dual
|
SELECT 2, '02', '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03' FROM dual
|
SELECT 3, '03', '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002' FROM dual
|
SELECT 2, '02', '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003' FROM dual
|
SELECT 3, '03', '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudb03>().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();
|
var lst = fsql.Select<tbioudb03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -356,58 +356,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, systimestamp FROM dual
|
SELECT 2, '02', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, systimestamp FROM dual
|
SELECT 3, '03', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, systimestamp FROM dual
|
SELECT 2, '002', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, systimestamp FROM dual
|
SELECT 3, '003', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.Oracle
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
}
|
}
|
||||||
class tbiou01
|
class tbiou01
|
||||||
@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -267,18 +267,18 @@ INTO ""TBIOU022""(""NAME"") VALUES('004')
|
|||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '100002' FROM dual
|
SELECT 2, '100002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003' FROM dual
|
SELECT 3, '100003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
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<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02' FROM dual
|
SELECT 2, '02', '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03' FROM dual
|
SELECT 3, '03', '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002' FROM dual
|
SELECT 2, '02', '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003' FROM dual
|
SELECT 3, '03', '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou03>().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();
|
var lst = fsql.Select<tbiou03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count());
|
||||||
@ -388,68 +388,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, systimestamp FROM dual
|
SELECT 2, '02', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, systimestamp FROM dual
|
SELECT 3, '03', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, systimestamp FROM dual
|
SELECT 2, '002', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, systimestamp FROM dual
|
SELECT 3, '003', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.SqlServer
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
||||||
USING (SELECT 1 as id
|
USING (SELECT 1 as [id]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.[id] = t2.id)
|
SELECT 4 ) t2 ON (t1.[id] = t2.[id])
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
||||||
USING (SELECT 1 as id
|
USING (SELECT 1 as [id]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.[id] = t2.id)
|
SELECT 4 ) t2 ON (t1.[id] = t2.[id])
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbioudb01
|
class tbioudb01
|
||||||
@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02'
|
SELECT 2, N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03'
|
SELECT 3, N'03'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'002'
|
SELECT 2, N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003'
|
SELECT 3, N'003'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -152,10 +152,10 @@ WHEN NOT MATCHED THEN
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -163,10 +163,10 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -174,10 +174,10 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -185,16 +185,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
MERGE INTO [tbioudb022] t1
|
||||||
USING (SELECT 1 as id, N'01' as name
|
USING (SELECT 1 as [id], N'01' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'02'
|
SELECT 2, N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03'
|
SELECT 3, N'03'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -202,16 +202,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
MERGE INTO [tbioudb022] t1
|
||||||
USING (SELECT 1 as id, N'001' as name
|
USING (SELECT 1 as [id], N'001' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'002'
|
SELECT 2, N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003'
|
SELECT 3, N'003'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
@ -248,16 +248,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
MERGE INTO [tbioudb022] t1
|
||||||
USING (SELECT 1 as id, N'100001' as name
|
USING (SELECT 1 as [id], N'100001' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'100002'
|
SELECT 2, N'100002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'100003'
|
SELECT 3, N'100003'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;
|
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<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', N'02'
|
SELECT 2, N'02', N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', N'03'
|
SELECT 3, N'03', N'03'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', N'002'
|
SELECT 2, N'02', N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', N'003'
|
SELECT 3, N'03', N'003'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb03>().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();
|
var lst = fsql.Select<tbioudb03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -353,58 +353,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', 0, getdate()
|
SELECT 2, N'02', 0, getdate()
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', 0, getdate()
|
SELECT 3, N'03', 0, getdate()
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'002', 0, getdate()
|
SELECT 2, N'002', 0, getdate()
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003', 0, getdate()
|
SELECT 3, N'003', 0, getdate()
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Odbc.SqlServer
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
||||||
USING (SELECT 1 as id
|
USING (SELECT 1 as [id]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.[id] = t2.id)
|
SELECT 4 ) t2 ON (t1.[id] = t2.[id])
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
||||||
USING (SELECT 1 as id
|
USING (SELECT 1 as [id]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.[id] = t2.id)
|
SELECT 4 ) t2 ON (t1.[id] = t2.[id])
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbiou01
|
class tbiou01
|
||||||
@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02'
|
SELECT 2, N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03'
|
SELECT 3, N'03'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'002'
|
SELECT 2, N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003'
|
SELECT 3, N'003'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -162,12 +162,12 @@ WHEN NOT MATCHED THEN
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -175,12 +175,12 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -188,12 +188,12 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -201,18 +201,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
MERGE INTO [tbiou022] t1
|
||||||
USING (SELECT 1 as id, N'01' as name
|
USING (SELECT 1 as [id], N'01' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'02'
|
SELECT 2, N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03'
|
SELECT 3, N'03'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -220,18 +220,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
MERGE INTO [tbiou022] t1
|
||||||
USING (SELECT 1 as id, N'001' as name
|
USING (SELECT 1 as [id], N'001' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'002'
|
SELECT 2, N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003'
|
SELECT 3, N'003'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
@ -268,18 +268,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
MERGE INTO [tbiou022] t1
|
||||||
USING (SELECT 1 as id, N'100001' as name
|
USING (SELECT 1 as [id], N'100001' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'100002'
|
SELECT 2, N'100002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'100003'
|
SELECT 3, N'100003'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;
|
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<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', N'02'
|
SELECT 2, N'02', N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', N'03'
|
SELECT 3, N'03', N'03'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', N'002'
|
SELECT 2, N'02', N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', N'003'
|
SELECT 3, N'03', N'003'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou03>().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();
|
var lst = fsql.Select<tbiou03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count());
|
||||||
@ -385,68 +385,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', 0, getdate()
|
SELECT 2, N'02', 0, getdate()
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', 0, getdate()
|
SELECT 3, N'03', 0, getdate()
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'002', 0, getdate()
|
SELECT 2, N'002', 0, getdate()
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003', 0, getdate()
|
SELECT 3, N'003', 0, getdate()
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Dameng
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new tbioudn01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudn01>().IfExistsDoNothing().SetSource(new[] { new tbioudn01 { id = 1 }, new tbioudn01 { id = 2 }, new tbioudn01 { id = 3 }, new tbioudn01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDN01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
}
|
}
|
||||||
class tbioudn01
|
class tbioudn01
|
||||||
@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudn02>().IfExistsDoNothing().SetSource(new tbioudn02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudn02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudn02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudn022>().IfExistsDoNothing().SetSource(new tbioudn022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudn022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudn022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -247,16 +247,16 @@ INTO ""TBIOUDN022""(""NAME"") VALUES('004')
|
|||||||
iou = fsql.InsertOrUpdate<tbioudn022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '100002' FROM dual
|
SELECT 2, '100002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003' FROM dual
|
SELECT 3, '100003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
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<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "02", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 1, id2 = "02", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudn03>().IfExistsDoNothing().SetSource(new tbioudn03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02' FROM dual
|
SELECT 2, '02', '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03' FROM dual
|
SELECT 3, '03', '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002' FROM dual
|
SELECT 2, '02', '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003' FROM dual
|
SELECT 3, '03', '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudn03>().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();
|
var lst = fsql.Select<tbioudn03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -356,58 +356,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudn04>().IfExistsDoNothing().SetSource(new tbioudn04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, systimestamp FROM dual
|
SELECT 2, '02', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, systimestamp FROM dual
|
SELECT 3, '03', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudn04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudn04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDN04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, systimestamp FROM dual
|
SELECT 2, '002', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, systimestamp FROM dual
|
SELECT 3, '003', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbioudn04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudn04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Dameng
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
}
|
}
|
||||||
class tbiou01
|
class tbiou01
|
||||||
@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -267,18 +267,18 @@ INTO ""TBIOU022""(""NAME"") VALUES('004')
|
|||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '100002' FROM dual
|
SELECT 2, '100002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003' FROM dual
|
SELECT 3, '100003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
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<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02' FROM dual
|
SELECT 2, '02', '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03' FROM dual
|
SELECT 3, '03', '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002' FROM dual
|
SELECT 2, '02', '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003' FROM dual
|
SELECT 3, '03', '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
insert (""ID1"", ""ID2"", ""NAME"")
|
||||||
values (t2.ID1, t2.ID2, t2.NAME)", sql);
|
values (t2.""ID1"", t2.""ID2"", t2.""NAME"")", sql);
|
||||||
iou.ExecuteAffrows();
|
iou.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou03>().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();
|
var lst = fsql.Select<tbiou03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count());
|
||||||
@ -388,68 +388,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, systimestamp FROM dual
|
SELECT 2, '02', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, systimestamp FROM dual
|
SELECT 3, '03', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, systimestamp FROM dual
|
SELECT 2, '002', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, systimestamp FROM dual
|
SELECT 3, '003', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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.ExecuteAffrows();
|
||||||
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Firebird
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2 FROM rdb$database
|
SELECT FIRST 1 2 FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3 FROM rdb$database
|
SELECT FIRST 1 3 FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2 FROM rdb$database
|
SELECT FIRST 1 2 FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3 FROM rdb$database
|
SELECT FIRST 1 3 FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbioudb01
|
class tbioudb01
|
||||||
@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02' FROM rdb$database
|
SELECT FIRST 1 2, '02' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03' FROM rdb$database
|
SELECT FIRST 1 3, '03' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '002' FROM rdb$database
|
SELECT FIRST 1 2, '002' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '003' FROM rdb$database
|
SELECT FIRST 1 3, '003' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02' FROM rdb$database
|
SELECT FIRST 1 2, '02' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03' FROM rdb$database
|
SELECT FIRST 1 3, '03' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '002' FROM rdb$database
|
SELECT FIRST 1 2, '002' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '003' FROM rdb$database
|
SELECT FIRST 1 3, '003' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -249,16 +249,16 @@ UNION ALL
|
|||||||
iou = fsql.InsertOrUpdate<tbioudb022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '100002' FROM rdb$database
|
SELECT FIRST 1 2, '100002' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '100003' FROM rdb$database
|
SELECT FIRST 1 3, '100003' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)
|
values (t2.""ID"", t2.""NAME"")
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -287,58 +287,58 @@ UNION ALL
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02', '02' FROM rdb$database
|
SELECT FIRST 1 2, '02', '02' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03', '03' FROM rdb$database
|
SELECT FIRST 1 3, '03', '03' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02', '002' FROM rdb$database
|
SELECT FIRST 1 2, '02', '002' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03', '003' FROM rdb$database
|
SELECT FIRST 1 3, '03', '003' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb03>().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();
|
var lst = fsql.Select<tbioudb03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -359,58 +359,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02', 0, current_timestamp FROM rdb$database
|
SELECT FIRST 1 2, '02', 0, current_timestamp FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03', 0, current_timestamp FROM rdb$database
|
SELECT FIRST 1 3, '03', 0, current_timestamp FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '002', 0, current_timestamp FROM rdb$database
|
SELECT FIRST 1 2, '002', 0, current_timestamp FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '003', 0, current_timestamp FROM rdb$database
|
SELECT FIRST 1 3, '003', 0, current_timestamp FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Firebird
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2 FROM rdb$database
|
SELECT FIRST 1 2 FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3 FROM rdb$database
|
SELECT FIRST 1 3 FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2 FROM rdb$database
|
SELECT FIRST 1 2 FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3 FROM rdb$database
|
SELECT FIRST 1 3 FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbiou01
|
class tbiou01
|
||||||
@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02' FROM rdb$database
|
SELECT FIRST 1 2, '02' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03' FROM rdb$database
|
SELECT FIRST 1 3, '03' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '002' FROM rdb$database
|
SELECT FIRST 1 2, '002' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '003' FROM rdb$database
|
SELECT FIRST 1 3, '003' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02' FROM rdb$database
|
SELECT FIRST 1 2, '02' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03' FROM rdb$database
|
SELECT FIRST 1 3, '03' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '002' FROM rdb$database
|
SELECT FIRST 1 2, '002' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '003' FROM rdb$database
|
SELECT FIRST 1 3, '003' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -269,18 +269,18 @@ UNION ALL
|
|||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '100002' FROM rdb$database
|
SELECT FIRST 1 2, '100002' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '100003' FROM rdb$database
|
SELECT FIRST 1 3, '100003' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)
|
values (t2.""ID"", t2.""NAME"")
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -309,68 +309,68 @@ UNION ALL
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02', '02' FROM rdb$database
|
SELECT FIRST 1 2, '02', '02' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03', '03' FROM rdb$database
|
SELECT FIRST 1 3, '03', '03' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02', '002' FROM rdb$database
|
SELECT FIRST 1 2, '02', '002' FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03', '003' FROM rdb$database
|
SELECT FIRST 1 3, '03', '003' FROM rdb$database
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou03>().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();
|
var lst = fsql.Select<tbiou03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count());
|
||||||
@ -391,68 +391,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '02', 0, current_timestamp FROM rdb$database
|
SELECT FIRST 1 2, '02', 0, current_timestamp FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '03', 0, current_timestamp FROM rdb$database
|
SELECT FIRST 1 3, '03', 0, current_timestamp FROM rdb$database
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT FIRST 1 2, '002', 0, current_timestamp FROM rdb$database
|
SELECT FIRST 1 2, '002', 0, current_timestamp FROM rdb$database
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT FIRST 1 3, '003', 0, current_timestamp FROM rdb$database
|
SELECT FIRST 1 3, '003', 0, current_timestamp FROM rdb$database
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Oracle
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbioudb01
|
class tbioudb01
|
||||||
@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -151,58 +151,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb022>().IfExistsDoNothing().SetSource(new tbioudb022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -247,16 +247,16 @@ INTO ""TBIOUDB022""(""NAME"") VALUES('004')
|
|||||||
iou = fsql.InsertOrUpdate<tbioudb022>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '100002' FROM dual
|
SELECT 2, '100002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003' FROM dual
|
SELECT 3, '100003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
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<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02' FROM dual
|
SELECT 2, '02', '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03' FROM dual
|
SELECT 3, '03', '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002' FROM dual
|
SELECT 2, '02', '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003' FROM dual
|
SELECT 3, '03', '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb03>().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();
|
var lst = fsql.Select<tbioudb03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -356,58 +356,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, systimestamp FROM dual
|
SELECT 2, '02', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, systimestamp FROM dual
|
SELECT 3, '03', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, systimestamp FROM dual
|
SELECT 2, '002', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, systimestamp FROM dual
|
SELECT 3, '003', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.Oracle
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID FROM dual
|
USING (SELECT 1 as ""ID"" FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2 FROM dual
|
SELECT 2 FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3 FROM dual
|
SELECT 3 FROM dual
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbiou01
|
class tbiou01
|
||||||
@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -161,68 +161,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou022>().SetSource(new tbiou022 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02' FROM dual
|
SELECT 2, '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03' FROM dual
|
SELECT 3, '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002' FROM dual
|
SELECT 2, '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003' FROM dual
|
SELECT 3, '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
//Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -267,18 +267,18 @@ INTO ""TBIOU022""(""NAME"") VALUES('004')
|
|||||||
iou = fsql.InsertOrUpdate<tbiou022>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou022>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU022"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '100002' FROM dual
|
SELECT 2, '100002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '100003' FROM dual
|
SELECT 3, '100003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
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<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02' FROM dual
|
SELECT 2, '02', '02' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03' FROM dual
|
SELECT 3, '03', '03' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002' FROM dual
|
SELECT 2, '02', '002' FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003' FROM dual
|
SELECT 3, '03', '003' FROM dual
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou03>().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();
|
var lst = fsql.Select<tbiou03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count());
|
||||||
@ -388,68 +388,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, systimestamp FROM dual
|
SELECT 2, '02', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, systimestamp FROM dual
|
SELECT 3, '03', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, systimestamp FROM dual
|
SELECT 2, '002', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, systimestamp FROM dual
|
SELECT 3, '003', 0, systimestamp FROM dual
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.ShenTong
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
||||||
USING (SELECT 1 as ID
|
USING (SELECT 1 as ""ID""
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.""ID"" = t2.ID)
|
SELECT 4 ) t2 ON (t1.""ID"" = t2.""ID"")
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDB01"" t1
|
||||||
USING (SELECT 1 as ID
|
USING (SELECT 1 as ""ID""
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.""ID"" = t2.ID)
|
SELECT 4 ) t2 ON (t1.""ID"" = t2.""ID"")
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbioudb01
|
class tbioudb01
|
||||||
@ -83,58 +83,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
||||||
USING (SELECT 1 as ID, '01' as NAME
|
USING (SELECT 1 as ""ID"", '01' as ""NAME""
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04' ) t2 ON (t1.""ID"" = t2.ID)
|
SELECT 4, '04' ) t2 ON (t1.""ID"" = t2.""ID"")
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOUDB02"" t1
|
||||||
USING (SELECT 1 as ID, '001' as NAME
|
USING (SELECT 1 as ""ID"", '001' as ""NAME""
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004' ) t2 ON (t1.""ID"" = t2.ID)
|
SELECT 4, '004' ) t2 ON (t1.""ID"" = t2.""ID"")
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -152,58 +152,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02'
|
SELECT 2, '02', '02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03'
|
SELECT 3, '03', '03'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002'
|
SELECT 2, '02', '002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003'
|
SELECT 3, '03', '003'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb03>().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();
|
var lst = fsql.Select<tbioudb03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -224,58 +224,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, current_timestamp
|
SELECT 2, '02', 0, current_timestamp
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, current_timestamp
|
SELECT 3, '03', 0, current_timestamp
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOUDB04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, current_timestamp
|
SELECT 2, '002', 0, current_timestamp
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, current_timestamp
|
SELECT 3, '003', 0, current_timestamp
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
|
@ -17,58 +17,58 @@ namespace FreeSql.Tests.ShenTong
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID
|
USING (SELECT 1 as ""ID""
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.""ID"" = t2.ID)
|
SELECT 4 ) t2 ON (t1.""ID"" = t2.""ID"")
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU01"" t1
|
||||||
USING (SELECT 1 as ID
|
USING (SELECT 1 as ""ID""
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.""ID"" = t2.ID)
|
SELECT 4 ) t2 ON (t1.""ID"" = t2.""ID"")
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"")
|
insert (""ID"")
|
||||||
values (t2.ID)", sql);
|
values (t2.""ID"")", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbiou01
|
class tbiou01
|
||||||
@ -83,68 +83,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
||||||
USING (SELECT 1 as ID, '01' as NAME
|
USING (SELECT 1 as ""ID"", '01' as ""NAME""
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '02'
|
SELECT 2, '02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03'
|
SELECT 3, '03'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '04' ) t2 ON (t1.""ID"" = t2.ID)
|
SELECT 4, '04' ) t2 ON (t1.""ID"" = t2.""ID"")
|
||||||
WHEN MATCHED THEN
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
Assert.Equal(@"MERGE INTO ""TBIOU02"" t1
|
||||||
USING (SELECT 1 as ID, '001' as NAME
|
USING (SELECT 1 as ""ID"", '001' as ""NAME""
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, '002'
|
SELECT 2, '002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003'
|
SELECT 3, '003'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4, '004' ) t2 ON (t1.""ID"" = t2.ID)
|
SELECT 4, '004' ) t2 ON (t1.""ID"" = t2.""ID"")
|
||||||
WHEN MATCHED THEN
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"")
|
insert (""ID"", ""NAME"")
|
||||||
values (t2.ID, t2.NAME)", sql);
|
values (t2.""ID"", t2.""NAME"")", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -162,68 +162,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '02'
|
SELECT 2, '02', '02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '03'
|
SELECT 3, '03', '03'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU03"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', '002'
|
SELECT 2, '02', '002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', '003'
|
SELECT 3, '03', '003'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set ""NAME"" = t2.NAME
|
update set ""NAME"" = t2.""NAME""
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID1"", ""ID2"", ""NAME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou03>().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();
|
var lst = fsql.Select<tbiou03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count());
|
||||||
@ -244,68 +244,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '02', 0, current_timestamp
|
SELECT 2, '02', 0, current_timestamp
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '03', 0, current_timestamp
|
SELECT 3, '03', 0, current_timestamp
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO ""TBIOU04"" t1
|
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
|
UNION ALL
|
||||||
SELECT 2, '002', 0, current_timestamp
|
SELECT 2, '002', 0, current_timestamp
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, '003', 0, current_timestamp
|
SELECT 3, '003', 0, current_timestamp
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert (""ID"", ""NAME"", ""VERSION"", ""CREATETIME"")
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
|
@ -19,58 +19,58 @@ namespace FreeSql.Tests.SqlServer
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new tbioudb01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
||||||
USING (SELECT 1 as id
|
USING (SELECT 1 as [id]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.[id] = t2.id)
|
SELECT 4 ) t2 ON (t1.[id] = t2.[id])
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbioudb01>().IfExistsDoNothing().SetSource(new[] { new tbioudb01 { id = 1 }, new tbioudb01 { id = 2 }, new tbioudb01 { id = 3 }, new tbioudb01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
Assert.Equal(@"MERGE INTO [tbioudb01] t1
|
||||||
USING (SELECT 1 as id
|
USING (SELECT 1 as [id]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.[id] = t2.id)
|
SELECT 4 ) t2 ON (t1.[id] = t2.[id])
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbioudb01
|
class tbioudb01
|
||||||
@ -85,58 +85,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb02>().IfExistsDoNothing().SetSource(new tbioudb02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02'
|
SELECT 2, N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03'
|
SELECT 3, N'03'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb02>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb02] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'002'
|
SELECT 2, N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003'
|
SELECT 3, N'003'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
@ -154,10 +154,10 @@ WHEN NOT MATCHED THEN
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -165,10 +165,10 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -176,10 +176,10 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -187,16 +187,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
MERGE INTO [tbioudb022] t1
|
||||||
USING (SELECT 1 as id, N'01' as name
|
USING (SELECT 1 as [id], N'01' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'02'
|
SELECT 2, N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03'
|
SELECT 3, N'03'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -204,16 +204,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
MERGE INTO [tbioudb022] t1
|
||||||
USING (SELECT 1 as id, N'001' as name
|
USING (SELECT 1 as [id], N'001' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'002'
|
SELECT 2, N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003'
|
SELECT 3, N'003'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
@ -250,16 +250,16 @@ SET IDENTITY_INSERT [tbioudb022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbioudb022] ON;
|
||||||
MERGE INTO [tbioudb022] t1
|
MERGE INTO [tbioudb022] t1
|
||||||
USING (SELECT 1 as id, N'100001' as name
|
USING (SELECT 1 as [id], N'100001' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'100002'
|
SELECT 2, N'100002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'100003'
|
SELECT 3, N'100003'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbioudb022] OFF;
|
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<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb03>().IfExistsDoNothing().SetSource(new tbioudb03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', N'02'
|
SELECT 2, N'02', N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', N'03'
|
SELECT 3, N'03', N'03'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb03>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb03] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', N'002'
|
SELECT 2, N'02', N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', N'003'
|
SELECT 3, N'03', N'003'
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb03>().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();
|
var lst = fsql.Select<tbioudb03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id1).Count());
|
||||||
@ -355,58 +355,58 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbioudb04>().IfExistsDoNothing().SetSource(new tbioudb04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', 0, getdate()
|
SELECT 2, N'02', 0, getdate()
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', 0, getdate()
|
SELECT 3, N'03', 0, getdate()
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbioudb04>().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" } });
|
iou = fsql.InsertOrUpdate<tbioudb04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbioudb04] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'002', 0, getdate()
|
SELECT 2, N'002', 0, getdate()
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003', 0, getdate()
|
SELECT 3, N'003', 0, getdate()
|
||||||
UNION ALL
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbioudb04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "0" + a.id).Count());
|
||||||
|
@ -19,58 +19,58 @@ namespace FreeSql.Tests.SqlServer
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
var iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 1 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new tbiou01 { id = 2 });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
||||||
USING (SELECT 1 as id
|
USING (SELECT 1 as [id]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.[id] = t2.id)
|
SELECT 4 ) t2 ON (t1.[id] = t2.[id])
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(2, iou.ExecuteAffrows());
|
Assert.Equal(2, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
iou = fsql.InsertOrUpdate<tbiou01>().SetSource(new[] { new tbiou01 { id = 1 }, new tbiou01 { id = 2 }, new tbiou01 { id = 3 }, new tbiou01 { id = 4 } });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
Assert.Equal(@"MERGE INTO [tbiou01] t1
|
||||||
USING (SELECT 1 as id
|
USING (SELECT 1 as [id]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2
|
SELECT 2
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3
|
SELECT 3
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 4 ) t2 ON (t1.[id] = t2.id)
|
SELECT 4 ) t2 ON (t1.[id] = t2.[id])
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id])
|
insert ([id])
|
||||||
values (t2.id);", sql);
|
values (t2.[id]);", sql);
|
||||||
Assert.Equal(0, iou.ExecuteAffrows());
|
Assert.Equal(0, iou.ExecuteAffrows());
|
||||||
}
|
}
|
||||||
class tbiou01
|
class tbiou01
|
||||||
@ -85,68 +85,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou02>().SetSource(new tbiou02 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02'
|
SELECT 2, N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03'
|
SELECT 3, N'03'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou02>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou02>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou02] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'002'
|
SELECT 2, N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003'
|
SELECT 3, N'003'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);", sql);
|
values (t2.[id], t2.[name]);", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou02>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
@ -164,12 +164,12 @@ WHEN NOT MATCHED THEN
|
|||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -177,12 +177,12 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -190,12 +190,12 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(1, iou.ExecuteAffrows());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -203,18 +203,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
MERGE INTO [tbiou022] t1
|
||||||
USING (SELECT 1 as id, N'01' as name
|
USING (SELECT 1 as [id], N'01' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'02'
|
SELECT 2, N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03'
|
SELECT 3, N'03'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
@ -222,18 +222,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
MERGE INTO [tbiou022] t1
|
||||||
USING (SELECT 1 as id, N'001' as name
|
USING (SELECT 1 as [id], N'001' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'002'
|
SELECT 2, N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003'
|
SELECT 3, N'003'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
||||||
Assert.Equal(4, iou.ExecuteAffrows());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou022>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
@ -270,18 +270,18 @@ SET IDENTITY_INSERT [tbiou022] OFF;", sql);
|
|||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
Assert.Equal(@"SET IDENTITY_INSERT [tbiou022] ON;
|
||||||
MERGE INTO [tbiou022] t1
|
MERGE INTO [tbiou022] t1
|
||||||
USING (SELECT 1 as id, N'100001' as name
|
USING (SELECT 1 as [id], N'100001' as [name]
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 2, N'100002'
|
SELECT 2, N'100002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'100003'
|
SELECT 3, N'100003'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name])
|
insert ([id], [name])
|
||||||
values (t2.id, t2.name);;
|
values (t2.[id], t2.[name]);;
|
||||||
SET IDENTITY_INSERT [tbiou022] OFF;
|
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<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 1, id2 = "01", name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou03>().SetSource(new tbiou03 { id1 = 2, id2 = "02", name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', N'02'
|
SELECT 2, N'02', N'02'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', N'03'
|
SELECT 3, N'03', N'03'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou03>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou03>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou03] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', N'002'
|
SELECT 2, N'02', N'002'
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', N'003'
|
SELECT 3, N'03', N'003'
|
||||||
UNION ALL
|
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
|
WHEN MATCHED THEN
|
||||||
update set [name] = t2.name
|
update set [name] = t2.[name]
|
||||||
WHEN NOT MATCHED THEN
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id1], [id2], [name])
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou03>().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();
|
var lst = fsql.Select<tbiou03>().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());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id1).Count());
|
||||||
@ -387,68 +387,68 @@ WHEN NOT MATCHED THEN
|
|||||||
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
var iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "01" });
|
||||||
var sql = iou.ToSql();
|
var sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 1, name = "011" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
iou = fsql.InsertOrUpdate<tbiou04>().SetSource(new tbiou04 { id = 2, name = "02" });
|
||||||
sql = iou.ToSql();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(1, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'02', 0, getdate()
|
SELECT 2, N'02', 0, getdate()
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'03', 0, getdate()
|
SELECT 3, N'03', 0, getdate()
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
|
|
||||||
iou = fsql.InsertOrUpdate<tbiou04>().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" } });
|
iou = fsql.InsertOrUpdate<tbiou04>().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();
|
sql = iou.ToSql();
|
||||||
Assert.Equal(@"MERGE INTO [tbiou04] t1
|
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
|
UNION ALL
|
||||||
SELECT 2, N'002', 0, getdate()
|
SELECT 2, N'002', 0, getdate()
|
||||||
UNION ALL
|
UNION ALL
|
||||||
SELECT 3, N'003', 0, getdate()
|
SELECT 3, N'003', 0, getdate()
|
||||||
UNION ALL
|
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
|
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
|
WHEN NOT MATCHED THEN
|
||||||
insert ([id], [name], [version], [CreateTime])
|
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());
|
Assert.Equal(4, iou.ExecuteAffrows());
|
||||||
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
var lst = fsql.Select<tbiou04>().Where(a => new[] { 1, 2, 3, 4 }.Contains(a.id)).ToList();
|
||||||
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
Assert.Equal(4, lst.Where(a => a.name == "00" + a.id).Count());
|
||||||
|
@ -169,7 +169,7 @@ namespace FreeSql.Internal.CommonProvider
|
|||||||
object val = col.GetDbValue(d);
|
object val = col.GetDbValue(d);
|
||||||
sb.Append(_commonUtils.RewriteColumn(col, _commonUtils.GetNoneParamaterSqlValue(dbParams, "cu", col, col.Attribute.MapType, val)));
|
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;
|
++colidx2;
|
||||||
}
|
}
|
||||||
switch (_orm.Ado.DataType)
|
switch (_orm.Ado.DataType)
|
||||||
|
@ -35,7 +35,7 @@ namespace FreeSql.Dameng.Curd
|
|||||||
|
|
||||||
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
||||||
WriteSourceSelectUnionAll(data, sb, dbParams);
|
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);
|
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())
|
if (_doNothing == false && cols.Any())
|
||||||
@ -43,14 +43,14 @@ namespace FreeSql.Dameng.Curd
|
|||||||
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
||||||
a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ?
|
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)} = 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");
|
))).Append(" \r\n");
|
||||||
|
|
||||||
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
||||||
if (cols.Any())
|
if (cols.Any())
|
||||||
sb.Append("WHEN NOT MATCHED THEN \r\n")
|
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(" 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();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ namespace FreeSql.Firebird.Curd
|
|||||||
|
|
||||||
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
||||||
WriteSourceSelectUnionAll(data, sb, dbParams);
|
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);
|
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())
|
if (_doNothing == false && cols.Any())
|
||||||
@ -43,14 +43,14 @@ namespace FreeSql.Firebird.Curd
|
|||||||
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
||||||
a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ?
|
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)} = 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");
|
))).Append(" \r\n");
|
||||||
|
|
||||||
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
||||||
if (cols.Any())
|
if (cols.Any())
|
||||||
sb.Append("WHEN NOT MATCHED THEN \r\n")
|
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(" 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();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
|
|
||||||
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
||||||
WriteSourceSelectUnionAll(data, sb, dbParams);
|
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);
|
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())
|
if (_doNothing == false && cols.Any())
|
||||||
@ -43,14 +43,14 @@ namespace FreeSql.Odbc.Dameng
|
|||||||
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
||||||
a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ?
|
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)} = 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");
|
))).Append(" \r\n");
|
||||||
|
|
||||||
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
||||||
if (cols.Any())
|
if (cols.Any())
|
||||||
sb.Append("WHEN NOT MATCHED THEN \r\n")
|
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(" 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();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
|
|
||||||
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
||||||
WriteSourceSelectUnionAll(data, sb, dbParams);
|
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);
|
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())
|
if (_doNothing == false && cols.Any())
|
||||||
@ -43,14 +43,14 @@ namespace FreeSql.Odbc.Oracle
|
|||||||
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
||||||
a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ?
|
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)} = 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");
|
))).Append(" \r\n");
|
||||||
|
|
||||||
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
||||||
if (cols.Any())
|
if (cols.Any())
|
||||||
sb.Append("WHEN NOT MATCHED THEN \r\n")
|
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(" 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();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
if (IdentityColumn != null) sb.Append("SET IDENTITY_INSERT ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" ON;\r\n");
|
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 (");
|
sb.Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
||||||
WriteSourceSelectUnionAll(data, sb, dbParams);
|
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);
|
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())
|
if (_doNothing == false && cols.Any())
|
||||||
@ -45,14 +45,14 @@ namespace FreeSql.Odbc.SqlServer
|
|||||||
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
||||||
a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ?
|
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)} = 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");
|
))).Append(" \r\n");
|
||||||
|
|
||||||
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
||||||
if (cols.Any())
|
if (cols.Any())
|
||||||
sb.Append("WHEN NOT MATCHED THEN \r\n")
|
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(" 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;");
|
if (IdentityColumn != null) sb.Append(";\r\nSET IDENTITY_INSERT ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" OFF;");
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ namespace FreeSql.Oracle.Curd
|
|||||||
|
|
||||||
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
||||||
WriteSourceSelectUnionAll(data, sb, dbParams);
|
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);
|
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())
|
if (_doNothing == false && cols.Any())
|
||||||
@ -43,14 +43,14 @@ namespace FreeSql.Oracle.Curd
|
|||||||
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
||||||
a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ?
|
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)} = 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");
|
))).Append(" \r\n");
|
||||||
|
|
||||||
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
||||||
if (cols.Any())
|
if (cols.Any())
|
||||||
sb.Append("WHEN NOT MATCHED THEN \r\n")
|
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(" 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();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,7 @@ namespace FreeSql.ShenTong.Curd
|
|||||||
|
|
||||||
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
var sb = new StringBuilder().Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
||||||
WriteSourceSelectUnionAll(data, sb, dbParams);
|
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);
|
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())
|
if (_doNothing == false && cols.Any())
|
||||||
@ -43,14 +43,14 @@ namespace FreeSql.ShenTong.Curd
|
|||||||
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
||||||
a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ?
|
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)} = 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");
|
))).Append(" \r\n");
|
||||||
|
|
||||||
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
||||||
if (cols.Any())
|
if (cols.Any())
|
||||||
sb.Append("WHEN NOT MATCHED THEN \r\n")
|
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(" 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();
|
return sb.ToString();
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ namespace FreeSql.SqlServer.Curd
|
|||||||
if (IdentityColumn != null) sb.Append("SET IDENTITY_INSERT ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" ON;\r\n");
|
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 (");
|
sb.Append("MERGE INTO ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" t1 \r\nUSING (");
|
||||||
WriteSourceSelectUnionAll(data, sb, dbParams);
|
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);
|
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())
|
if (_doNothing == false && cols.Any())
|
||||||
@ -45,14 +45,14 @@ namespace FreeSql.SqlServer.Curd
|
|||||||
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
.Append(" update set ").Append(string.Join(", ", cols.Select(a =>
|
||||||
a.Attribute.IsVersion && a.Attribute.MapType != typeof(byte[]) ?
|
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)} = 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");
|
))).Append(" \r\n");
|
||||||
|
|
||||||
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
cols = _table.Columns.Values.Where(a => a.Attribute.CanInsert == true);
|
||||||
if (cols.Any())
|
if (cols.Any())
|
||||||
sb.Append("WHEN NOT MATCHED THEN \r\n")
|
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(" 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;");
|
if (IdentityColumn != null) sb.Append(";\r\nSET IDENTITY_INSERT ").Append(_commonUtils.QuoteSqlName(TableRuleInvoke())).Append(" OFF;");
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user