首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将INSERT INTO更改为UPDATE命令

将INSERT INTO更改为UPDATE命令
EN

Stack Overflow用户
提问于 2019-08-07 06:02:29
回答 2查看 48关注 0票数 0

我需要将语句转换并插入到一个有几千行的更新语句中。

我已经使用SSMS Import/Export向导将值从文本文件插入到我的测试环境中,但有人建议我应该使用UPDATE。

我使用RapidSQL创建插入脚本,但需要将其转换为更新。4位和5位数值已经存在于目标表中,并且可能在WHERE语句中使用。感谢您的帮助!

代码语言:javascript
复制
INSERT INTO TRAPEZE.STOPS ( STOPID, USERLONGSTRING1 ) 
        VALUES ( 10268, 'Westbound Ford Rd @ 189B St' )
/

INSERT INTO TRAPEZE.STOPS ( STOPID, USERLONGSTRING1 ) 
        VALUES ( 9603, 'Eastbound Adams Rd @ Cowan (Flag)' )
/

目标列USERLONGSTRING1最终应包含值'Westbound Ford @ 189B St‘,其中STOPID为10268。文本文件包含STOPID和Location值。

这是一个24x7实时数据库,有许多依赖的应用程序将其用于实时应用程序,因此截断不是一个选项。

我最初的INSERT语句是通过导入到测试服务器中的一个临时表中创建的,但是我的DBA(sp的话-sports)不想让我创建额外的表,他们只想要一个更新脚本。

EN

回答 2

Stack Overflow用户

发布于 2019-08-07 06:27:01

使用临时表,您的脚本更改将更容易:

代码语言:javascript
复制
declare @myTemp table (STOPID int, USERLONGSTRING1 varchar(200))

INSERT INTO @myTemp ( STOPID, USERLONGSTRING1 ) 
        VALUES ( 10268, 'Westbound Ford Rd @ 189B St' )

INSERT INTO @myTemp ( STOPID, USERLONGSTRING1 ) 
        VALUES ( 9603, 'Eastbound Adams Rd @ Cowan (Flag)' )

-- ...

update TRAPEZE.STOPS 
   set USERLONGSTRING1 = t.USERLONGSTRING1
from TRAPEZE.STOPS ts inner join @myTemp t on t.StopId = ts.StopId;
票数 1
EN

Stack Overflow用户

发布于 2019-09-04 23:16:24

我作弊,只是把值放到一个电子表格中,然后剪切并粘贴到记事本++中以添加引号,klugey,但它起作用了:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57384575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档