সম্প্রতি আমি বেশ কয়েকটি পুরাতন সঞ্চিত প্রক্রিয়া সন্ধান করছি যা এসকিউএল সার্ভার 2005 এর জন্য লেখা ছিল এবং আমি এমন কিছু লক্ষ্য করেছি যা আমি বুঝতে পারি না। এটি কোনও ধরণের ফাংশন কল হিসাবে উপস্থিত রয়েছে।
একটি নমুনা:
SELECT o.name, o.type_desc, o.create_date
FROM sys.objects o
WHERE o.create_date < {fn Now()} -1;
এই সব সারি থেকে প্রদর্শন করা হবে sys.objects
আছে একটি create_date
পূর্বে থেকে 24 ঘন্টা আগে।
যদি আমি এই প্রশ্নের জন্য এক্সিকিউশন প্ল্যানটি প্রদর্শন করি তবে আমি দেখতে পাচ্ছি যে এটি ডেটাবেস ইঞ্জিন দ্বারা {fn Now()}
প্রতিস্থাপন করা getdate()
হয়েছে:
SELECT [o].[name],[o].[type_desc],[o].[create_date]
FROM [sys].[objects] [o]
WHERE [o].[create_date]<(getdate()-@1)
স্পষ্টতই, ব্যবহার করা {fn Now()}
তার চেয়ে অনেক বেশি অবচেতন GetDate()
। আমি কারও পক্ষে এই সিনট্যাক্সটিকে প্লেগের মতো এড়িয়ে যাব কারণ এটি অনিবন্ধিত।