sql - 删除临时表(如果存在)

标签 sql sql-server

我有两行 SQL 代码可以动态创建两个表,我需要执行类似的操作

IF TABLE EXISTS 
    DROP IT AND CREATE IT AGAIN
ELSE
    CREATE IT

我的台词如下

CREATE TABLE ##CLIENTS_KEYWORD(client_id int)     
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)   

如何在我的程序中将这个概念应用于这两个表?

最佳答案

从 SQL Server 2016 开始,您可以使用

 DROP TABLE IF EXISTS ##CLIENTS_KEYWORD

在以前的版本中您可以使用

IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
/*Then it exists*/
DROP TABLE ##CLIENTS_KEYWORD
CREATE TABLE ##CLIENTS_KEYWORD
(
   client_id INT
)

您还可以考虑截断表,而不是删除并重新创建。

IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
  TRUNCATE TABLE ##CLIENTS_KEYWORD
ELSE
  CREATE TABLE ##CLIENTS_KEYWORD
  (
     client_id INT
  ) 

关于sql - 删除临时表(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7259285/

相关文章:

sql - 聚合时间序列的高效子查询

sql-server - 实现发票销售税策略

.net - 如何使用 .Net 实现 SQL Server 的 BCrypt?

sql - 将记录永久标记为只读的最佳方法是什么?

sql - 找不到存储过程 'dbo.aspnet_CheckSchemaVersion'

c# - 组合框数据绑定(bind)()检查

mysql - sql 检索时间戳之间的数据

node.js - 使用node.js将数据从Excel加载到sql server表

mysql - 再次谈一下 SQL 日期转换

c# - 您可以在 EF 中对映射到存储过程的实体执行实体继承吗?