我在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) 如何在过程中将这两个表概念应用到这两个表中?
发布于 2011-08-31 23:21:22
在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
) 发布于 2011-08-31 23:22:06
通过检索其object_id来检查其是否存在:
if object_id('tempdb..##clients_keyword') is not null
drop table ##clients_keyword发布于 2015-07-21 21:55:11
你所要求的是:
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD') IS NOT NULL
BEGIN
DROP TABLE ##CLIENTS_KEYWORD
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
END
ELSE
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
IF OBJECT_ID('tempdb..##TEMP_CLIENTS_KEYWORD') IS NOT NULL
BEGIN
DROP TABLE ##TEMP_CLIENTS_KEYWORD
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
END
ELSE
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int) 因为您总是要创建表,而不管表是否被删除;一个稍微优化的解决方案是:
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD') IS NOT NULL
DROP TABLE ##CLIENTS_KEYWORD
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
IF OBJECT_ID('tempdb..##TEMP_CLIENTS_KEYWORD') IS NOT NULL
DROP TABLE ##TEMP_CLIENTS_KEYWORD
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int) https://stackoverflow.com/questions/7259285
复制相似问题