栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SQL Server 2005实现MySQL替换成吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SQL Server 2005实现MySQL替换成吗?

这让我很不喜欢MSSQL(博客上的rant)。我希望MSSQL受支持

upsert

@ Dillie-O的代码在较旧的SQL版本(+1票)中是个好方法,但它基本上仍然是两个IO操作(the

exists
然后the
update
insert
)。

基本上,这篇文章有一个更好的方法:

--try an updateupdate tablename set field1 = 'new value',    field2 = 'different value',    ...where idfield = 7--insert if failedif @@rowcount = 0 and @@error = 0    insert into tablename ( idfield, field1, field2, ... )    values ( 7, 'value one', 'another value', ... )

如果是更新,则减少为一个IO操作,如果是插入则为两个。

MS Sql2008

merge
从SQL:2003标准引入:

merge tablename as targetusing (values ('new value', 'different value'))    as source (field1, field2)    on target.idfield = 7when matched then    update    set field1 = source.field1,        field2 = source.field2,        ...when not matched then    insert ( idfield, field1, field2, ... )    values ( 7,  source.field1, source.field2, ... )

现在,它实际上只是一个IO操作,但是代码很糟糕:-(



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394062.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号