sql - SQL Server DELETE with OUTPUT not working with table alias
问题描述
I get an "Incorrect syntax near 'OUTPUT'" error for the OUTPUT statement. Playing with it, it seems to be that the OUTPUT statement doesn't like the table alias D. But I need that for DELETE to work with the exists clause. Any idea how to fix this?
DELETE D FROM #VARNAMES D
OUTPUT DELETED.VARNAME INTO #Table2
WHERE EXISTS (SELECT 1 FROM CIT
WHERE RID LIKE '123%'
AND RULES LIKE '%Storage.' + D.VARNAME + '"%')
解决方案
In SQL Server the OUTPUT
goes before the FROM
:
DELETE D
OUTPUT DELETED.VARNAME INTO #Table2
FROM #VARNAMES D
WHERE EXISTS (SELECT 1 FROM CIT
WHERE RID LIKE '123%'
AND RULES LIKE '%Storage.' + D.VARNAME + '"%')
;
推荐阅读
- javascript - 我的表单如何在我的本地存储库而不是在 Github 上工作?
- java - 我想在底部导航活动的片段中添加秒表,但 findviewbyid 显示错误。如何解决?
- javascript - 如何将字符串中的文本放入代码中?
- python - 根据条件循环遍历列和切片值
- r - 将数据子集迭代到数据帧中 - R
- android - 使用捆绑从一个图的片段导航到另一个图的片段
- angular - Angular 8:反应式表单 - 货币管道不会转换为反应式表单字段?
- javascript - 更改输入类型月份的默认视图
- fastboot - 无法使用 fastboot 启动 TWRP 映像
- vue.js - 使用 webpack 和 VueJS 2 生成自定义构建名称