我有一个脚本,它使用DROP TABLE IF EXISTS删除表的负载,这可以工作。
此脚本中还有一个删除操作,用于从我不管理的另一个表中删除一行。该表可能存在或不存在。是否有任何在尝试删除行之前检查该表是否存在?
这需要适用于MYSQL和SQLServer
谢谢亚历克斯
要签入SQL SERVER,
IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'TheSchema' AND TABLE_NAME = 'TheTable'))
BEGIN
--Do Stuff
END
要检查mysql:
您只需数:
SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = '[database name]'
AND table_name = '[table name]';
问题内容: 朋友们, 我正在创建一个临时表。该脚本可能会运行几次,因此我需要检查临时表是否存在,然后将其删除。我已经在下面编写了代码,但是两次运行脚本时出现错误,表明该表已经存在: 数据库中已经有一个名为“#lu_sensor_name_19”的对象 。 当Tablle不为null时,似乎不会返回true。我究竟做错了什么? 问题答案: Temp #Tables是在tempdb中创建的。试试这个:
问题内容: 我正在处理一个请求,其中我必须创建一个表来插入一些数据。因此,显然我将首先拥有一个删除表st。在创建圣之前 但是,当我第一次运行此程序(可以创建表之前)时,它将弹出一个错误,提示未创建表,然后从此处创建表和goe子。因此,每当有人第一次运行我的代码时,它将在放置表st上弹出此错误。有谁有更好的主意吗? 诸如“如果表存在则删除其他创建表”之类的东西, 我不确定我们如何在sql中做到这一点
问题内容: 使用Sql Server2012。我有一个存储过程,它的一部分检查用户名是否在表中。如果是,则返回1,否则返回2。这是我的代码: 但是,我一直收到以下错误: ‘1’附近的语法不正确。 使用IF EXIST甚至可以做到吗? 问候 问题答案: 如果您想这样做,那么这就是您要遵循的语法。 您不一定严格要求这些语句,但是最好是从一开始就养成这种习惯。
除了以下方法之外,是否有其他方法仅在给定键存在的情况下删除字典中的项: 在这种情况下,我得到了一组要从给定的字典中删除的键,但我不确定这些键是否都存在于字典中。以防我错过更有效的解决方案。
问题内容: 我很沮丧,我不知道该怎么做。 基本上,我只想创建一个表,但是如果它存在,则需要将其删除并重新创建,而不是将其截断,但是如果不存在,则可以创建它。 有人可以帮忙吗? 谢谢乔治 问题答案: 放在tablename您的发言之前。 该语句将删除该表(如果存在),但如果不存在则不会引发错误。
问题内容: 我在使用SQL查询时遇到问题。如果同一行尚不存在,我需要插入一行。这是我到目前为止的内容: 我对sql不太熟悉,尤其是不存在的语法,因此在执行时会出现以下错误: ORA-06550:第37行,第11列:PLS-00103:在预期以下情况之一时遇到了符号“ INSERT”: 然后和或 用“ then”符号代替“ INSERT”继续。 following: the following: 问