T-SQL 语句需要改进
我有以下可以正确运行的 T-SQL 代码(在 SQL 2000 中):
INSERT INTO M2MDATA01.dbo.cspopup (fcpopkey,
fcpoptext,
fcpopval,
fnorder,
fcpopacces)
SELECT CSP69.fcpopkey,
CSP69.fcpoptext,
CSP69.fcpopval,
CSP69.fnorder,
CSP69.fcpopacces
FROM M2MData69..CSPOPUP CSP69
WHERE CSP69.fcpopkey = 'SHIPVIA'
AND NOT EXISTS
(SELECT CS01.identity_column
FROM m2mdata01..cspopup CS01
WHERE CS01.identity_column = CSP69.identity_column)
必须有一种更优雅的方法来实现它。 我在这里在同一个脚本中以两种不同的方式引用同一个表。
有什么建议么?
I have the following T-SQL code (in SQL 2000) which functions correctly:
INSERT INTO M2MDATA01.dbo.cspopup (fcpopkey,
fcpoptext,
fcpopval,
fnorder,
fcpopacces)
SELECT CSP69.fcpopkey,
CSP69.fcpoptext,
CSP69.fcpopval,
CSP69.fnorder,
CSP69.fcpopacces
FROM M2MData69..CSPOPUP CSP69
WHERE CSP69.fcpopkey = 'SHIPVIA'
AND NOT EXISTS
(SELECT CS01.identity_column
FROM m2mdata01..cspopup CS01
WHERE CS01.identity_column = CSP69.identity_column)
There just has to be a more elegant way of doing it. I'm referencing the same table two different ways in the same script here.
Any suggestions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
像这样?
Like this?
您可以将其作为左连接来执行,其中连接结果为空:
尽管根据我的经验,性能对最终结果的影响比代码的美观程度更大。 您还可以执行以下操作:
You could do it as a left join where the join result is null:
Although in my experience performance will drive the end result more than the niceness of the code. You could also do a not in: