জানুয়ারী 2017 আপডেট করুন - এসকিউএল সার্ভার 2016+ / অ্যাজুরি এসকিউএল ডেটাবেস
এসকিউএল সার্ভার 2016 এবং অ্যাজুরে এসকিউএল ডেটাবেস-এর বর্তমান সংস্করণে এখন ফাংশন, পদ্ধতি, টেবিল, ডাটাবেস ইত্যাদির জন্য নিম্নলিখিত বাক্য গঠন রয়েছে ( DROP IF EXISTS
):
DROP FUNCTION IF EXISTS dbo.fn_myfunc;
এবং এসকিউএল সার্ভার 2016 সার্ভিস প্যাক 1 মডিউলগুলির জন্য আরও কার্যকর কার্যকারিতা যুক্ত করেছে (ফাংশন, পদ্ধতি, ট্রিগার, ভিউ) যার অর্থ অনুমতি বা নির্ভরতা হারাবে না ( CREATE OR ALTER
):
CREATE OR ALTER FUNCTION dbo.fn_myfunc ...
এই উভয় সিনট্যাক্স বর্ধনের ফলে উত্স নিয়ন্ত্রণ, স্থাপনা ইত্যাদির জন্য ব্যবহৃত অনেকগুলি সহজ স্ক্রিপ্ট হতে পারে can
আপনি যদি ব্যবহার করেন তবে ...
পুরানো সংস্করণ
আপনি যখন ম্যানেজমেন্ট স্টুডিও থেকে এটি স্ক্রিপ্ট করেন তখন আপনাকে এসকিউএল সার্ভার কী করতে হবে:
IF NOT EXISTS (SELECT 1 FROM sys.objects WHERE type = 'FN' AND name = 'fn_myfunc')
BEGIN
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'CREATE FUNCTION ...';
EXEC sp_executesql @sql;
END
অথবা আপনি বলতে পারেন:
BEGIN TRY
DROP FUNCTION dbo.fn_myfunc;
END TRY
BEGIN CATCH
PRINT 'Function did not exist.';
END CATCH
GO
CREATE FUNCTION...
অথবা আপনি কেবল বলতে পারেন:
DROP FUNCTION dbo.fn_myfunc;
GO
CREATE FUNCTION...
(ফাংশনটি ইতিমধ্যে বিদ্যমান না থাকলে এখানে আপনি একটি ত্রুটি বার্তা পাবেন, তবে স্ক্রিপ্টটি পরবর্তী জিও থেকে চালিয়ে যাবে, সুতরাং ড্রপটি কাজ করেছে বা না, ফাংশনটি এখনও তৈরি হবে (পুনরায়))
মনে রাখবেন যে আপনি যদি ফাংশনটি ফেলে দেন এবং এটি পুনরায় তৈরি করেন তবে আপনি অনুমতি এবং সম্ভাব্য নির্ভরতার তথ্যও হারাবেন।