نکته های مفید و حرفه ای در اس کیو ال سرور SQL Server - نسخهی قابل چاپ +- انجمن وب سایت مشاوره در زمینه پروژه های برنامه نویسی و طراحی وب سایتهای تجاری (http://forum.a00b.com) +-- انجمن: سوالها و مقاله های آموزشی (/forumdisplay.php?fid=1) +--- انجمن: مقاله های آموزشی (/forumdisplay.php?fid=3) +--- موضوع: نکته های مفید و حرفه ای در اس کیو ال سرور SQL Server (/showthread.php?tid=25) |
Query (پرس جو) برای بدست آوردن تعداد CPU های فیزیکی و مجازی در SQL Server - ali - 02-27-2015 01:22 AM از Query یا پرس و جوی زیر برای بدست آوردن تعداد CPU های فیزیکی و مجازی موجود در Server (یا همان کامپیوتری که SQL Server در آن نصب شده) استفاده می شود: کد: SELECT cpu_count AS [Logical CPU Count], hyperthread_ratio AS Hyperthread_Ratio, البته اگر از * استفاده بشود یک سری اطلاعات بیشتر نیز در اختیار شما گذارده می شود. اسکریپت اس کیو ال برای تولید اسکریپت جدولهای موجود در پایگاه داده - ali - 03-14-2015 04:27 AM از این اسکریپت برای تولید اسکریپت جدولهای موجود در پایگاه داده استفاده می شود. اسکریپت جدولها در پایگاه داده ذخیره نمی شوند. اما اسکریپت سایر آبجکتها در پایگاه داده ذخیره می شوند. (حداقل تا الان که این مطلب رو مینویسم این گونه بوده است. شاید بعدا این قابلیت اضافه بشود.) کد: select 'create table [' + so.name + '] (' + o.list + ')' + و ضمنا این هم اکسریپت اس کیو ال برای استخراج اسکریپت سایر آبجکتهای موجود در پایگاه داده. البته نمی دونم اینکریپت شده ها رو هم نمایش میده یا نه. هنوز تست نکردم. کد: select object_definition(object_id) ایجاد فانکشن برای تولید عدد تصادفی بین دو عدد صحیح در SQL - ali - 03-18-2015 02:24 AM برای ایجاد عدد تصادفی از فانکشن RAND() در SQL Server استفاده می شود. ولی از این فانکشن به تنهایی برای تولید عدد تصادفی بین دو عدد صحیح نمی توان استفاده نمود. ضمنا از تابع RAND() نمتوان در داخل یک فانکشن دیگر استفاده کرد. در صورت استفاده با خطای زیر مواجه می شوید: کد: Invalid use of a side-effecting operator 'rand' within a function. برای جلوگیری از این خطا در ابتدا یک Query یا همان View در SQL Server ایجاد می نماییم: کد: CREATE VIEW [dbo].[XtblGet_RAND] سپس با استفاده از این View یک فانکشن می نویسیم که عدد تصادفی بین دو عدد صحیح را ایجاد نماید: کد: CREATE FUNCTION [dbo].[UDF_GetRandomNumberInt](@LowerNumber INT , @UpperNumber INT) نحوه استفاده هم به شکل زیر می باشد: کد: SELECT dbo.UDF_GetRandomNumberInt(10 , 1500) AS RndNumber مثالی از یک کرسر CURSOR در SQL Server - ali - 03-18-2015 09:30 AM کد: DECLARE @BookRowID int تبدیل تاریخ به اشکال و فرمت های مختلف در SQL Server - ali - 04-05-2015 07:19 PM از نیاز های معمول برای برنامه نویسان بانک های اطلاعاتی، تبدیل تاریخ به فرمت های متفاوت و استخراج قسمت های مختلف تاریخ و زمان می باشد. برنامه SQL Server دارای این امکان می باشد که تاریخ را به اشکال مختلف تبدیل نموده و خروجی را به صورت یک رشته در اختیار برنامه نویس قرار دهد. در قسمت زیر لیست پرکاربرد ترین فرمت ها را به همراه یک نمونه مثال از هر کدام، ملاحظه می نمایید. تبدیلات مربوط به تاریخ: کد: Format# Query (current date: 12/30/2006) Sample تبدیلات مربوط به زمان: کد: 8 or 108 select convert(varchar, getdate(), 8) 00:38:54 رفع ERROR در SQL Server User, group, or role - ali - 08-15-2015 08:55 PM رفع Error اس کیو ال سرور user group or role already exists in the current database این پیغام خطا معمولا زمانی رخ می دهد که در بخش کاربران SQL کاربری را ایجاد بنمایید که در یک دیتابیس قبلا موجود می باشد. برای رفع ای ERROR بایستی از کد زیر استفاده نمایید: کد: ALTER USER [<username>] WITH LOGIN = [<username>] که به جای عبارت username همان نام کاربری را ثبت نمایید. مثال: کد: ALTER USER ali WITH LOGIN = ali تولید عدد تصادفی در اس کیو ال سرور SQL Server - ali - 08-15-2015 11:58 PM کد: (SELECT ABS(CHECKSUM(NewId())) % 14) نحوه ایجاد جدول تمپ در SQL Temp Table - ali - 09-29-2015 02:31 AM برای یجاد جدول TEMP در SQL Server بایستی به شکل زیر جدول و فیلدهای آن را ایجاد نمود. در مثال زیر ابتدا جدول ایجاد شده ، سپس داخل آن مقادیری وارد شده و در مرحله بعدی با استفاده از دستور SELECT مقدار داخل آن نمایش داده شده و در نهایت مجددا جدول مجازی پاک شده است. کد: --- ایجاد نحوه ایجاد انواع تابع Function در SQl Server - ali - 09-29-2015 02:42 AM ابتدا یک تابع که مقداری عددی را برمیگرداند و دارای پارامتر ورودی از نوع رشته است را ارائه می دهیم: کد: CREATE FUNCTION [dbo].[CalcdLen](@InputStr NVARCHAR(MAX)) نحوه استفاده: (خروجی عدد 11 خواهد بود) کد: SELECT dbo.CalcdLen('MyNameIsAli') تابع دوم یک Function است که مقدار جدول برمی گرداند: کد: CREATE FUNCTION GetAllProducts( ) نحوه استفاده: (مقدار بازگشتی به صورت جدول می باشد): کد: SELECT * from GetAllProducts() نوع سوم تابعی است که خروجی آن هم از نوع جدول می باشد با این تفاوت که ساختار جدول را نیز خودمان تعریف می نماییم و همانجا مقدار دهی می کنیم. کد: CREATE FUNCTION GetAllProducts3( ) نحوه استفاده (مقدار خروجی باز هم از نوع جدول می باشد): کد: SELECT * FROM GetAllProducts3() ایجاد تریگر دیتابیسی برای عمل بر روی یک سری جدول تعریف شده خاص - ali - 10-13-2015 06:38 AM با استفاده از نمونه تریگر زیر می توانید یک Database Trigger تعریف کرده و حاصل عملیات آنرا بر روی یک یا چند جدول خاص اعمال نمایید. (How to make DDL Trigger for a specific table) کد: CREATE TRIGGER NoEventOnSecificTable ON DATABASE |