نکته های مفید و حرفه ای در اس کیو ال سرور SQL Server - نسخهی قابل چاپ +- انجمن وب سایت مشاوره در زمینه پروژه های برنامه نویسی و طراحی وب سایتهای تجاری (http://forum.a00b.com) +-- انجمن: سوالها و مقاله های آموزشی (/forumdisplay.php?fid=1) +--- انجمن: مقاله های آموزشی (/forumdisplay.php?fid=3) +--- موضوع: نکته های مفید و حرفه ای در اس کیو ال سرور SQL Server (/showthread.php?tid=25) |
نکته های مفید و حرفه ای در اس کیو ال سرور SQL Server - ali - 07-23-2014 08:21 AM لیست رکوردهای جدولهای پایگاه داده ، تمامی رکوردهای همه جدولهای پایگاه داده ، بدست آوردن تمامی رکوردهای همه جدولهای پایگاه داده نکته شماره 1: برگرداندن تعداد رکوردهای موجود در تمامی جدولهای پایگاه داده با یک حرکت گاهی اوقات نیاز داریم که تعداد رکوردهای موجود در هر یک از جدولها را در لیستی مرتب شده ببینیم. منظور این است که با اجرای یک پرس و جو بتوانیم در یک جدول اطلاعات مربوط به نام جدول و تعداد رکوردهای موجود در آن جدول را مشاهده کنیم. با استفاده از رویه ذخیره شده با عنوان sp_MSForEachTable می توان به این خواسته دست یافت: کد: CREATE TABLE #tblCounts -- ایجاد جدول مجازی تعویض مالک جدول در پایگاه داده table owner - ali - 07-26-2014 08:21 AM در برخی موارد لازم می شود که مالک جدول پایگاه داده اس کیو ال سرور را تعویض کنیم. منظور همان table owner می باشد. برای این منظور از کد زیر استفاده می نمائیم: کد: EXEC sp_changeobjectowner 'userlast.tblmainID', 'dbo' بدست آوردن SPID در SQL Server - ali - 07-27-2014 05:53 PM در ابتدا باید این نکته را عرض کنم که SPID در حقیقت مخفف Server Process ID می باشد که به هر کاربری که به SQL متصل می شود یک کد یکتا توسط SQl Server اختصاص داده می شود و توسط این ID می توان در بخش SQL Server Profiler تراکنشهای کاربر را مشاهده نمود. شکل کلی دستور: کد: SELECT @@SPID AS 'SPID', SYSTEM_USER AS 'Login Name', USER AS 'User Name' میتوان Stored Procedure نوشت و از طریق آن در متن برنامه SPID و یک سری اطلاعات دیگر را بدست آورد: کد: -- ========================================================================================== کد: LSC_PdfProjDataContext db = new LSC_PdfProjDataContext(); // دریافت SPID بدست آوردن Server Name یا همان نام اصلی سرور در SQL Server - ali - 07-28-2014 01:30 PM برای بدست آوردن نام Server در SQL Server از کد زیر استفاده می نمائیم: کد: select @@SERVERNAME بدست آوردن Instance Name در اس کیو ال سرور SQL Server - ali - 07-28-2014 01:47 PM منظور از instance name در حقیقت همان نام Server هایی است که SQL Server برای اتصال به آنها می تواند استفاده کند. در زیر لینک یک برنامه مفید مشاهده می شود که برای بدست آوردن Instance Name های نصب شده در یک کامپیوتر و مجوعا در یک شبکه محلی استفاده می شود: لینک دانلود برنامه همانطور که در شکل مشاهده می شود Instance Name هایی که در سیستم موجود است در لیست نمایش داده شده است. محل استفاده از Instance Name در حقیقت در زمان Connect شدن به Server است و این نام را باید در بخش Server Name قرار داد. (شکل زیر) اضافه کردن یک رکورد بین دو رکورد در فیلد اتو نامبر حذف شده autonumber - ali - 08-22-2014 01:51 AM فرض کنید یک جدول دارید که دارای یک فیلد از نوع اتو نامبر می باشد. همانطور که می دانید اگر یک رکورد در جدولی که دارای فیلد اتونامبر است حذف شود ، نمی توان به صورت دستی بین دو رکورد و به جای رکورد حذف شده رکوردی را درج کرد. SQL Server دارای دستورهایی است که می توان این کار را توسط کد نویسی انجام داد. جدول زیر را در نظر بگیرید: (شکل زیر) در این جدول فیلد FactorID از نوع autonumber می باشد. با دستور Select رکوردهای موجود در جدول را واکشی می نماییم. (شکل زیر) در این مرحله می خواهیم بین رکوردهای 1 و 12 یک رکورد با FactorID شماره 5 درج کنیم. برای این منظور کد زیر را نوشته و آن را اجرا می نمائیم: کد: SET IDENTITY_INSERT tblFactors ON پس از اجرا ، یک رکورد به جدول اضافه می گردد. (شکل زیر) !نکته: برای اینکه بتوانید رکورد درج نمایید بایستی از تمامی فیلدها در پرس و جو استفاده نمایید. در صورتی که یک فیلد از قلم بیفتد پرس و جوی نوشته شده به درستی اجرا نخواهد شد. بدست آوردن آی دی اتو نامبر آخرین رکورد درج شده در هنگام درج - ali - 11-06-2014 12:29 PM در بعضی از مواقع ، برنامه نویسها و یا کاربران پایگاه داده نیاز به این دارند که آخرین آی دی مربوط به فیلد Auto number (که از نوع عددی و یکتا می باشد) رکورد ایجاد شده را در همان لحظه درج استخراج کنند و از آن در متن برنامه استفاده کنند. چندین روش برای این کار وجود دارد. یکی از روشها استفاده از متغیر زیر (که از متغیرهای موجود در SQL Server می باشد) است: کد: @@IDENTITY برای این منظور می توان از کدهای زیر استفاده نمود: کد: Insert Into tblBooks ([BookName],[BookGroupID]) Values ('test',1) -- دستور درج در پایگاه داده و یا اینکه می توان دستورهای فوق را در قالب یک رویه ذخیره شده (Stored Procedure) استفاده کرد: کد: Create Procedure sp_tblBooks_Insert ساختار جدول اصلی نیز به شکل زیر می باشد: کد: CREATE TABLE [dbo].[tblBooks] ارسال نام فیلد و استفاده از select به صورت پویا در اس کیو ال - ali - 01-03-2015 04:08 AM با استفاده از این روش شما می توانید عنوان فیلد را به صورت پارامتر به سمت SQL Server ارسال نمایید و نتیجه را دریافت نمایید. کد: DECLARE @value varchar(10) بدست آوردن اطلاعات کامل در مورد یک جدول از پایگاه داده - ali - 01-03-2015 09:02 AM به جای tblName عنوان جدول مورد نظر را وارد نمایید. کد: select * تبدیل تاریخ جاری میلادی سیستم به نوع Nvarchar - ali - 01-29-2015 12:47 PM کد: select REPLACE(REPLACE(CONVERT(nvarchar(30), GETDATE(),9) , ':' , '') , ' ' , '') |