Saya memiliki dua baris kode SQL yang membuat dua tabel dengan cepat, aku harus melakukan sesuatu seperti
IF TABLE EXISTS
DROP IT AND CREATE IT AGAIN
ELSE
CREATE IT
saya garis berikut yang
CREATE TABLE ##CLIENTS_KEYWORD(client_id int)
CREATE TABLE ##TEMP_CLIENTS_KEYWORD(client_id int)
bagaimana saya bisa menerapkan konsep ini dua tabel dalam prosedur saya?
Dari SQL Server 2016 anda hanya dapat menggunakan
DROP TABLE IF EXISTS ##CLIENTS_KEYWORD
Pada versi sebelumnya, anda dapat menggunakan
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
/*Then it exists*/
DROP TABLE ##CLIENTS_KEYWORD
CREATE TABLE ##CLIENTS_KEYWORD
(
client_id INT
)
Anda juga bisa mempertimbangkan untuk membatasi meja sebaliknya daripada menjatuhkan dan menciptakan.
IF OBJECT_ID('tempdb..##CLIENTS_KEYWORD', 'U') IS NOT NULL
TRUNCATE TABLE ##CLIENTS_KEYWORD
ELSE
CREATE TABLE ##CLIENTS_KEYWORD
(
client_id INT
)
Memeriksa keberadaan dengan mengambil nya object_id:
if object_id('tempdb..##clients_keyword') is not null
drop table ##clients_keyword
Apa yang anda diminta untuk:
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)
Karena anda're selalu akan membuat tabel, terlepas dari apakah tabel yang akan dihapus atau tidak; sedikit dioptimalkan solusi adalah:
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)