در مطلب قبلی با استفاده از دستور For XML خروجی xml تولید کردیم اما با همین دستور میتوان تا حدودی خروجی Json نیر تولید نمود. البته به صورت native هنور در sql server این امکان وجود ندارد که با رای دادن به این لینک از تیم ماکروسافت بخواهید که این امکان را در نسخه بعدی اضافه کند. برای این کار یک جدول موقت ایجاد کرده و چند رکورد در آن درج میکنیم:
declare @t table(id int, name nvarchar(max), active bit)
ins ...
قبل از مطالعه این بخش لطفا آشنایی با Window Functionها در SQL Server بخش اول را مطالعه نمایید. دربخش اول،در مورد Syntax مربوط به Over Clause صحبت کردیم، و برای درک استفاده از Over Clause، مثالهایی را بررسی نمودیم، در این بخش نیز،به تفاوت Row Clause و Range Clause می پردازیم.
مثال: با ایجاد یک Script،عملیات جمع روی یک فیلد خاص، بوسیله Row Clause و Range Clause انجام میدهیم. تا تفاوت آنها را درک نماییم.
...
فرض کنید که میخواهیم خروجی از جدول خود را به صورت XML نمایش یا از طریق وب سرویس در برنامه مان استفاده نماییم. اولین راهی که به ذهنمان میرسد خودمان رشته xml را با حلقه ای ایجاد نماید یا استفاده از فضای نام System.Xml و کلاسهای نوشته شده برای این کار . اما خود Sql Server امکانات ویژه ای برای کار با ساختار xml مهیا نموده که براحتی میتوانید خروجی xml از داده هایتان ایجاد نمایید.
برای این کار از عبارت For XML در Select میتوان استفاده ...
در T-SQL 2012 قابلیت صفحه بندی، نمایش خروجی یک Query فراهم گردیده است، که برای نرم افزارهای تحت وب بسیار پرکاربرد میباشد، به عنوان مثال، از جمله کاربردهای بارز آن، میتوان به نمایش نتیجه یک جستجو بصورت صفحه بندی با تعداد رکورد محدود،اشاره نمود.
مایکروسافت برای ایجاد قابلیت صفحه بندی و محدود نمودن نمایش خروجی یک Query، تغییراتی را در Syntax مربوط به Order by ایجاد نموده است، که در ذیل مشاهده مینمایید:
...
گاهی اوقات لازم میباشد، در زمان Sort نمودن یک ستون، تمایل داشته باشیم Range خاصی از مقادیر آن ستون در ابتدا قرار گیرد، و عملیات Sort پس از آن Range، اعمال گردد. برای انجام چنین کاری میتوانیداز روش زیر استفاده نمایید:
برای درک مطلب مثالی میزنیم:
در ابتدا Script زیر را اجرا نمایید، که شامل یک جدول و درج چند رکورد در آن میباشد:
Create Table TestSort
(ID int iden ...
بعضی وقتها به هر علتی لازم است پایگاه داده و فایل هایش را تغییر نام دهیم. اگر در اینترنت جستجو کنیم روشهای مختلفی برای تغییر نام مثل تغییر با Management Studio یا T-SQL یا روشهای دیگری یافت میشود. اما اکثرا در بین انجام به مشکلی غیر قابل پیش بینی بر میخوریم. پایگاه داده در حالت آفلاین یا Pending قرار گرفته و به خطاهای نا مفهومی بر میخوریم. حالا باید دوباره کلی جستجو کنیم تا مشکل بوجود آمده را حل نمائیم.
بهترین روش تغییر نا ...
مقدمهمقدار null به معنی پوچ و هیچ میباشد اما زمانی که در مقدار دهی جداول از آن استفاده مینمایم با توجه به نوع آن ستون فضای متفاوتی اشتغال مینماید. شاید در پایگاه دادههای کوچک زیاد مطرح نباشد اما زمانی که حداقل چند گیگ حجم آن باشد و فرضا 20 تا 30 درصد آن از مقادیر null پر شده باشد فضای زیای از پوچ گرفته شده است این در حالی است که خیلی از توسعه دهندگان اصلا به اهمیت استفاده از null توجهی نمیکنند و از مقادیری غیر معتبری مثل 0 یا 1- در آن ...
در حین کار با SQL Server نیاز به دیباگ اسکریپتی طولانی و اورژانسی T-SQL بود که در محیط Management Studio با مشکل زیر برخورد کردم:
در این مورد نظرات و پیشنهادات زیادی از جمله ریستارت سرویس SQL Server و تعویض کلمه عبور لاگین و یا پاک کردن کلمات عبور کش شده در سیستم و حتی ریستارت کامپیوتر :) از دوستان همکار در فرومهای موجود در اینترنت گذاشته شده بود و در گوشه ای هم اشاره به '.' شده بود که طبق عادت همیشگی برای لاگین ...
گاهی اوقات لازم است، تاریخ آخرین روز ماه جاری یا دو ماه بعدتر یا یک ماه قبلتر و غیرو... را نیاز داشته باشیم. SQL Server در نسخه 2008 خود تابعی ارائه داده است، که تاریخ آخرین روز ماه را برمی گرداند. و Syntax آن به شرح ذیل میباشد:
EOMONTH ( start_date [, month_to_add ] )
این تابع دو پارامتر دریافت میکند، اولین پارامتر یک فرمت تاریخ میپذیرد، دومین پارامتر، اختیاری است و یک عدد میپذیرد و بیانگر تعداد ماه ...