sql - 忽略不存在表的插入语句并运行下一条语句
问题描述
我有这样的查询
INSERT NonExistingTableName(...) VALUES (...); SELECT 1;
我不能在 VALUES 之前插入任何东西,所以我得到了Invalid object name 'NonExistingTableName'
.
有没有办法不打印错误而只做下一条语句?
解决方案
不是以简单的方式。问题是在脚本的编译阶段捕获了不存在的表。如果没有编译,则没有任何运行。
一种选择——如果你必须有这样的代码——是动态 SQL:
BEGIN TRY
EXEC sp_executesql 'INSERT NonExistingTableName(...) VALUES (...)';
END TRY
BEGIN CATCH
END CATCH;
SELECT 1;
您需要动态 SQL 和/TRY
块CATCH
来绕过错误。
推荐阅读
- javascript - 如何使用 angularjs 在 html 中插入 QlikSense 元素
- css - 在 Bootstrap4 输入组帮助文本不显示为块
- javascript - 使用类而不是标签和输入 id 选择和交换文件
- neo4j - Neo4j 模式理解因 where 子句中的路径条件而失败
- javascript - 为什么 Express 函数将请求和响应都作为参数?
- doxygen - 在 Doxygen 上并排放置图像
- c++ - 符号查找错误未定义符号:curl_mime_init
- django - 如何通过 DRF 返回自定义状态码?
- java - Apache 服务器上的第一个 REST 调用很慢
- node.js - 将对象扁平化为相对字符串