۱۲
اسفند
۹۰
۱- در SP از Set NoCount On استفاده کنید.
البته می توانید در آخرین دستور مجدد پارامتر NoCount را خاموش کنید.
۲- برای فراخوانی و اشاره به اشیا، حتما نام Schema را بکار ببرید.
۳- برای آگاهی از تعداد رکوردها، بجای استفاده از دستور Select Count( * ) از دستوری همانند Select Count(1) کنید.
۴- برای آگاهی از موجود بودن اطلاعات در جداول، از شمارش رکوردها خودداری کنید و از دستور If Exists(Select 1 From Tbl) استفاده کنید
۵- برای اجرای دستورات به جای استفاده از دستور Execute از دستور sp_executesql استفاده کنید.
۶- تا جایی که امکان دارد از cursor استفاده نکنید.
۷- تلاش کنید تا تراکنش ها طولانی نشوند.
۸- برای مدیریت خطا، از Try-Catch استفاده کنید
۲۹
آبان
۹۰
۱- سرویس های SQL Server را بررسی کنید که آیا در وضعیت Running هستند؟
۲- با دستور sqlcmd -L بررسی کنید که چه SQLهایی در شبکه موجود است و آیا شما قصد دارید به کامپیوتر درستی وصل بشوید؟
۳- اگر با موارد ۱ و ۲ مشکل برطرف نشد بررسی کنید که TCP/IP در SQL Server Configuration Manager فعال باشد.
۴- پورت ۱۴۳۳ را در لیست Exceptions فایروال ویندوز اضافه کنید.
۵- Remote Connection را فعال کنید
۶- سرویس Browser برای SQL Server را نیز فعال کنید
۷- فایل sqlbrowser.exe را نیز به لیست Exceptions فایروال اضافه کنید.
۱۹
شهریور
۹۰
برای جستجوی رکوردهایی که در فیلدی کاراکتر underline دارند، کاراکتر underline را بین [] محصور کنید
۱۱
تیر
۹۰
اگر در زمان نصب SQL Server بر روی دستگاهی که در گذشته نیز نسخه ای از SQL نصب بوده خطای زیر نمایش داده شود:
MsiGetProductInfo failed to retrieve ProductVersion for package during install
در رجیستری در مسیر های زیر به دنبال کلیدی که در خطا نیز نمایش داده شده است بگردید و آن را حذف کنید. همچنین مقدار معکوس کلید اعلام شده را نیز جستجو و حذف کنید.
LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\UpgradeCode\
LOCAL_MACHINE\Software\Classes\Installer\UpgradeCode\
۲۷
فروردین
۹۰
گرد کردن به نزدیک ترین عدد صحیح:
floatValue = int (floatValue+ 0.5);
Let floatValue = 6.38
6.38 + 0.5 = 6.88
int(6.88) = 6
floatValue is now 6.0
گرد کردن به نزدیکترین عدد دهم اعشار:
A. floatValue = float(int(floatValue * 10 + 0.5)) / 10;
Let floatValue = 8.673
floatValue*10 = 86.73
86.73 + 0.5 = 87.23
int(87.23) = 87
float (87) = 87.0
87.0 / 10 = 8.7
floatValue is now 8.7
B. floatValue = floor(floatValue*10+0.5)/10;
Let floatValue = 8.673
floatValue*10+0.5 = 87.23
floor(87.23) = 87.0
87.0 / 10 = 8.7
floatValue is now 8.7
۲۱
اسفند
۸۹
امروز داشتم روی پروژه ای کار میکردم که نیاز بود، پرس و جوی دینامیکی داشته باشم و سپس نتیجه پرس و جو را نیز مجدد مورد ارزیابی های مختلف قرار بدم. برای همین با استفاده از کدی مشابه زیر، نتیجه پرس و جوی دینامیک رو در یک جدول موقت ریختم و مجدد پرس و جوهای مختلف را بر روی آن انجام دادم
DECLARE @where VARCHAR(1000)
DECLARE @sql VARCHAR(1000)
CREATE TABLE #temp (Field1 VARCHAR(100), Field2 INT, Field3 BIT)
SET @sql = ‘INSERT INTO #temp (Field1, Field2, Field3) Select FieldA, FieldB, FieldC FROM Tbl WHERE (1=1)’ + @where
EXEC SP_EXECUTESQL @sql
SELECT @Var1=Count( * ) FROM #temp WHERE ….
SELECT @Var2=Count( * ) FROM #temp WHERE ….
SELECT @Var3=Count( * ) FROM #temp WHERE ….
۲۰
اسفند
۸۹
هنگام Attach کردن فایل های دیتابیس از یک سیستم به سیستم جدید(یا پس از تغییر سیستم عامل) ممکن است با خطای ۵۱۲۰ مواجه شده باشید.
معمولا این خطا در ویندوز ۷ یا ویستا زیاد دیده می شود. این خطا به دلیل تنظیمات دسترسی به فایل می باشد که راهکارهای مختلفی نیز پیشنهاد شده است اما ساده ترین راه حل، اجرای SQL Server با گزینه Run as administrator می باشد.
۲۴
بهمن
۸۹
فرض کنید بخواهید فایل حاوی اطلاعات فارسی که با کاراکتر Comma جدا شده است را به SQL Server یا MySQL وارد کنید. اگر فیلدی داشته باشید که حاوی ویرگول (،) باشد در زمان Import خطایی رخ می دهد.
این خطا ناشی از آن است که در زمان Import کاراکتر ویرگول و Comma یکسان در نظر گرفته می شود و به همین دلیل فیلدی که حاوی ویرگول است، مجدد در محل ویرگول Split می شود.
ظاهرا راهی وجود ندارد جز اینکه جدا کننده خود را تغییر بدهید. یعنی Comma را با $ جایگزین کنید….
۱۵
بهمن
۸۹
SQL Server نمی تواند آبجکت هایش را دسته بندی کند. یعنی اگر دیتابیسی داشته باشید که ۱۰۰۰ جدول داشته باشد، همه این جدول ها در Table فهرست می شود که مدیریت آن پیچیده خواهد شد و صرفا شما می توانید با استفاده از آیکون Filter، آبجکت ها را فیلتر کنید.