SQL'de anında iki tablo oluşturan iki satır kodum var, şöyle bir şey yapmam gerekiyor
IF TABLE EXISTS
DROP IT AND CREATE IT AGAIN
ELSE
CREATE IT
benim satırlarım aşağıdaki gibidir
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
Bu kavramı prosedürümdeki bu iki tablo için nasıl uygulayabilirim?
SQL Server 2016'dan itibaren sadece
DROP TABLE IF EXISTS ##CLIENTS_KEYWORD
Önceki sürümlerde şunları kullanabilirsiniz
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
/*Then it exists*/
DROP TABLE ##CLIENTS_KEYWORD
CREATE TABLE ##CLIENTS_KEYWORD
(
client_id INT
)
Tabloyu bırakıp yeniden oluşturmak yerine tabloyu kesmeyi de düşünebilirsiniz.
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
TRUNCATE TABLE ##CLIENTS_KEYWORD
ELSE
CREATE TABLE ##CLIENTS_KEYWORD
(
client_id INT
)
Nesne_id'sini alarak varlığını kontrol edin:
if object_id('tempdb..##clients_keyword') is not null
drop table ##clients_keyword
İstediğiniz şey:
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)
Tablonun silinip silinmediğine bakılmaksızın tabloyu her zaman oluşturacağınız için; biraz optimize edilmiş bir çözümdür:
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)