۱۳۹۰/۰۴/۰۲

بررسي مقدار دهي اوليه متغيرها در T-SQL


يكي از موارد مشكل ساز حين استفاده از T-SQL ، مقدار دهي اوليه متغيرها به نال است و اگر اسكريپت تهيه شده كمي طولاني باشد، خطايابي مشكلات مرتبط با آن بسيار مشكل مي‌شود. براي مثال:
Declare
@x int,
@y int

Set @x = 1
If (@x + @y = 1)
BEGIN
print 'yes!'
End

Set @y = (select sum(id) from Account)
If @x + @y = 1
BEGIN
print 'yes!'
End

كد فوق بدون هيچگونه خطايي اجرا مي‌شود و هيچ وقت هم yes را چاپ نمي‌كند. مشكل هم همينجا است. خطايابي قسمت دوم اين اسكريپت كمي مشكل‌تر از حالت قبل است. چون در اينجا به نظر متغير y صريحا مقدار دهي شده است؛ اما در عمل ممكن است براي مثال به دليل عدم وجود ركوردي در جدول Account، باز هم null به آن نسبت داده شود.

بنابراين سؤال اين است كه چگونه اين نوع مشكلات را در يك پروژه با تعداد زيادي رويه ذخيره شده، تابع و غيره مي‌توان تشخيص داد؟
پاسخ:
در اين مورد قبلا مطلبي در اين سايت منتشر شده [+] (البته اگر از نگارش كامل VS 2010 استفاده مي‌كنيد نيازي به نصب چيزي نخواهيد داشت) و نكته‌ي آن بررسي SR0007 است.