tutorial SQL সার্ভারে বিদ্যমান থাকলে কীভাবে একটি টেবিল ড্রপ করবেন?




sql tutorial pdf (12)

এটা নিম্নলিখিত কাজ সঠিক?

IF EXISTS(SELECT *
          FROM   dbo.Scores)
  DROP TABLE dbo.Scores

না। যদি এটি কোনও সারি থাকে তবে কেবলমাত্র টেবিলটি ছেড়ে যাবে (এবং যদি টেবিল বিদ্যমান না থাকে তবে একটি ত্রুটি বাড়াবে)।

পরিবর্তে, একটি স্থায়ী টেবিল জন্য আপনি ব্যবহার করতে পারেন

IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL 
  DROP TABLE dbo.Scores; 

অথবা, একটি অস্থায়ী টেবিল জন্য আপনি ব্যবহার করতে পারেন

IF OBJECT_ID('tempdb.dbo.#T', 'U') IS NOT NULL
  DROP TABLE #T; 

এসকিউএল সার্ভার 2016+ একটি ভাল উপায় আছে, DROP TABLE IF EXISTS … ব্যবহার করে DROP TABLE IF EXISTS … @ জোভান উত্তরটি দেখুন।

https://code.i-harness.com

টেবিল নাম Scores

এটা নিম্নলিখিত কাজ সঠিক?

IF EXISTS(SELECT *
          FROM   dbo.Scores)
  DROP TABLE dbo.Scores 

ANSI এসকিউএল / ক্রস প্ল্যাটফর্ম INFORMATION_SCHEMA ব্যবহার করা, যা বিশেষভাবে SQL ডেটাবেসে বস্তুর সম্পর্কে মেটা ডেটা অনুসন্ধান করার জন্য ডিজাইন করা হয়েছিল।

if exists (select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = 'Scores' AND TABLE_SCHEMA = 'dbo')
    drop table dbo.Scores;

বেশিরভাগ আধুনিক RDBMS সার্ভারগুলি অন্তত প্রাথমিক ইনফরমেশনসএইচএইচএইচএমএ সমর্থন করে, যার মধ্যে রয়েছে: MySQL , Postgres , Oracle , আইবিএম ডিবি 2 এবং মাইক্রোসফ্ট এসকিউএল সার্ভার 7.0 (এবং তার চেয়ে বেশি)


আমি একটু UDF লিখেছিলাম যা 1 প্রদান করে যদি তার যুক্তি একটি বিদ্যমান টেবিলের নাম হয়, 0 অন্যথায়:

CREATE FUNCTION [dbo].[Table_exists]
(
    @TableName VARCHAR(200)
)
    RETURNS BIT
AS
BEGIN
    If Exists(select * from INFORMATION_SCHEMA.TABLES where TABLE_NAME = @TableName)
        RETURN 1;

    RETURN 0;
END

GO

টেবিল User যদি এটি বিদ্যমান থাকে, মুছে ফেলার জন্য, এটির মতো কল করুন:

IF [dbo].[Table_exists]('User') = 1 Drop table [User]

আমি ব্যবহার করি:

if exists (select * 
           from sys.tables 
           where name = 'tableName' 
           and schema_id = schema_id('dbo'))
begin
    drop table dbo.tableName
end

আশা করি এটা কাজে লাগবে:

begin try drop table #tempTable end try
begin catch end catch

এই মত, এটা সবচেয়ে সহজ উপায়।

qry আপনার নিজস্ব প্রশ্নের হবে, যাই হোক না কেন আপনি নির্বাচন তালিকায় চান।

set @qry = ' select * into TempData from (' + @qry + ')Tmp  '

exec (@qry)

select * from TempData 

drop table TempData

এসকিউএল সার্ভার 2016 (13.x) এবং উপরে

DROP TABLE IF EXISTS dbo.Scores

আগের সংস্করণে

IF OBJECT_ID('dbo.Scores', 'U') IS NOT NULL 
DROP TABLE dbo.Scores; 

তোমার table type ইউ



বা:

if exists (select * from sys.objects where name = 'Scores' and type = 'u')
    drop table Scores

সত্যিই কাজ না যে অনেক দেখা হয়েছে। যখন একটি টেম্প টেবিল তৈরি করা হয় এটি tempdb থেকে মুছে ফেলা আবশ্যক!

কাজ করে যে একমাত্র কোড:

IF OBJECT_ID('tempdb..#tempdbname') IS NOT NULL     --Remove dbo here 
    DROP TABLE #tempdbname   -- Remoeve "tempdb.dbo"

সহজ যে:

IF OBJECT_ID(dbo.TableName, 'U') IS NOT NULL
DROP TABLE dbo.TableName

যেখানে dbo.TableName আপনার পছন্দসই টেবিল এবং 'U' আপনার table type


IF EXISTS (SELECT NAME FROM SYS.OBJECTS WHERE object_id = OBJECT_ID(N'Scores') AND TYPE in (N'U'))
    DROP TABLE Scores
GO




sql-server