
 |
|
مهدی ولی خانی (ولیخانی) هستم .متولد دوم خرداد سال 63 . فارغ التحصیل رشته نرم افزار کامپیوتر ، مقطع کاردانی ، دانشگاه جامع علمی - کاربردی واحد داده پردازی.
در حال حاضر حرفه ی من طراحی و برنامه نویسی وب می باشد . هدف اصلی من از انتخاب رشته نرم افزار کامپیوتر فقط ورود به دنیای طراحی و برنامه نویسی تحت وب بود . در واقع بزرگترین سرگرمی من طراحی و برنامه نویسی می باشد .(چه بهتر که تحت وب باشه!)
ساعات زیادی از وقت روزانه من پشت یک کامپیوتر در اتاقم میگذره . به موسیقی زیاد علاقه دارم . دو سبک موسیقی را بسیار می پسندم . موسیقی اصیل ایرانی و موسیقی راک . رنگ مورد علاقه آبی و تیم مورد علاقه پرسپولیسه .
|
 |
  E-mail

| | Sun | Mon | Tue | Wed | Thu | Fri | Sat | | 28 | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 10 | 11 | 12 | 13 | | 14 | 15 | 16 | 17 | 18 | 19 | 20 | | 21 | 22 | 23 | 24 | 25 | 26 | 27 | | 28 | 29 | 30 | 31 | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

| December, 2009 (2) |
| November, 2009 (3) |
| September, 2009 (1) |
| August, 2009 (2) |
| June, 2009 (3) |
| May, 2009 (2) |
| March, 2009 (3) |
| February, 2009 (2) |
| January, 2009 (1) |
| December, 2008 (10) |
| November, 2008 (1) |
| October, 2008 (15) |
| September, 2008 (10) |
| August, 2008 (5) |
| July, 2008 (1) |
| June, 2008 (4) |
| May, 2008 (4) |
| April, 2008 (10) |
| March, 2008 (6) |
| February, 2008 (3) |
| January, 2008 (4) |
| December, 2007 (21) |
| November, 2007 (3) |
| October, 2007 (2) |
| September, 2007 (13) |
| August, 2007 (5) |
| July, 2007 (3) |
| May, 2007 (1) |
| April, 2007 (3) |
| March, 2007 (6) |
| February, 2007 (4) |
| January, 2007 (9) |
| December, 2006 (7) |
| November, 2006 (6) |
| October, 2006 (2) |
| September, 2006 (1) |
 Total Posts: 191 This Year: 0 This Month: 0 This Week: 0 Comments: 255
 newtelligence dasBlog 1.9.6264.0
|
|
Wednesday, February 18, 2009
|
|
Thursday, December 04, 2008
|
 |
|
 |
|
کپی کردن یک پایگاه داده SQL Server با استفاده از Database Publishing Wizard
یکی از مراحل اولیه در رابطه با آپلود یک وب سايت و یا برنامه تحت وب ساخت پایگاه داده بر روی سرور مقصد هست ، راه های زیادی برای این کار وجود دارد ، شما می توانید فایل های مربوطه و یا نسخه پشتیبان پایگاه داده خود را به مدیر سرور بدهید و او برای شما کار Attach و یا Restore کردن پایگاه داده را انجام دهد ، همچنین شما می توانید با استفاده از امکان Generate Scripts خود SQL Server Management Studio اقدام به تولید کد T-SQL ی کنید که با اجرای آن بر روی سرور ساختار پایگاه داده شما (بدون داده هایش) ایجاد شود و یا شما می توانید با استفاده از ابزار Import/Export Data اقدام به انتقال داده های خویش کنید .
پروژه ای در CodePlex وجود دارد با نام SQL Server Hosting Toolkit ،یکی از برنامه هائی که توسط اعضاء تیم این پروژه و برای مشتریان Host ساخته شده است Database Publishing Wizard می باشد . با استفاده از این ابزار 2 مگا بایتی شما می توانید از پایگاه داده خود یک کد T-SQL تولید کنید که با اجرای این کد می توانید ساختار پایگاه داده ، اطلاعات پایگاه داده و یا هر دو را بصورت کد T-SQL در آورید و با اجرای آن بر روی پایگاه داده مقصد در واقع یک نمونه از پایگاه داده خود را بر روی سرور بسازید ، این ابزار همچنین به شما این امکان را میدهد که بصورت مستقیم ساختار و داده های موجود پایگاه داده خود را به سرور مورد نظر انتقال دهید (بدون تولید کدهای T-SQL) .
جهت کسب اطلاعات بیشتر در رابطه با پروژه SQL Server Hosting Toolkit به این صفحه ، جهت کسب اطلاعات بیشتر در رابطه با ابزار Database Publishing Wizard به این صفحه و جهت دانلود نرم افزار Database Publishing Wizard به این صفحه مراجعه نمائید.
|
|
|
منابع رايگان در رابطه با SQL Server 2008 ، ارائه شده از سوی مایکروسافت
مایکروسافت اقدام به ارائه یک ebook رايگان در رابطه با معرفی امکانات جدید SQL Server 2008 کرده است که از طریق این صفحه می توانید آن را دانلود نمائید. در این کتاب می خوانید : Chapter 1: Security and Administration Chapter 2: Performance Chapter 3: Type System Chapter 4: Programmability Chapter 5: Storage Chapter 6: Enhancements for High Availability Chapter 7: Business Intelligence Enhancements
همچنین مایکروسافت یک دوره رايگان 3 ساعته (آنلاین) هم در رابطه با SQL Server 2008 دارد که در رابطه با عناوین زیر صحبت می شود : - What's New in SQL Server 2008 for Enterprise Data Platform
- What's New in SQL Server 2008 for Business Intelligence
- What's New in SQL Server 2008 for Database Development
جهت کسب اطلاعات بیشتر در رابطه با این دوره 3 ساعته آنلاین کلیک کنید.همچنین دانلود کنید : منبع:
|
|
|
Thursday, August 28, 2008
|
 |
|
 |
|
معرفی sp_MSforeachtable و sp_MSforeachdb دو رویه در SQL Server
بعنوان یک توسعه دهنده برايتان موقعيتی پیش آمده است که بخواهید یک دستور را بر روی تمامی جداول یک پایگاه داده اجرا کنید ، و یا دستوری را بر روی تمامی پایگاه های داده موجود اجرا نمائید ؟ راه های مختلفی برای رسیدن به این هدف وجود دارد اما یکی از ساده ترین و صد البته سریع ترین راه ها استفاده از دو فراخوان sp_MSforeachtable و sp_MSforeachdb می باشد . با استفاده از این دو فراخوان می توانید دستورات مورد نظر خود را بر روی کلیه جداول یک پایگاه داده خاص و یا کلیه پایگاه های داده اجرا نمائید . ورودی این دو فراخوان یک رشته است که همانا دستوری است که شما میخواهید اجرا نمائید . در زیر به ذکر دو مثال در رابطه با نحوه استفاده از این دو فرخوان خواهیم پرداخت:
1 - استفاده از sp_MSforeachtable برای اجرای یک دستور بر روی تمامی جداول : بطور مثال برای بدست آوردن میزان فضائی که هر جدول اشغال کرده است می توانیم از کد زیر استفاده نمائیم:
USE DropThings; EXECUTE sp_MSforeachtable 'EXECUTE sp_spaceused [?];'; توجه داشته باشید که [?] در واقع Place Holder ی است برای نام جدول. خروجی کد زیر برای پایگاه داده DropThings بشکل زیر است : 2 - استفاده از sp_MSforeachdb برای اجرای دستور بر روی تمامی پایگاه های داده : بطور مثال برای بدست آوردن میزان فضائی که هر پایگاه داده اشغال کرده است می توانیم از کد زیر استفاده نمائیم:
EXECUTE master.sys.sp_MSforeachdb 'USE [?]; EXEC sp_spaceused [?] در دستور فوق Place Holder ی است برای نام پایگاه داده . خروجی حاصل از اجرای دستور فوق به شکل زیر می باشد: منابع : The undocumented sp_MSforeachtable procedure The undocumented sp_MSforeachdb procedure
|
|
|
Thursday, August 14, 2008
|
 |
|
 |
|
فراخوانی دستورات سیستمی از طریق SQL ، استفاده از xp_cmdshell
SQL server به شما این امکان را میدهد که بتوانید دستورات سیستمی را از طریق SQL اجرا کرده و احیانا بر روی خروجی های حاصل از اجرای این دستورات پردازش های مورد نظر خود را انجام دهید .با استفاده از xp_cmdshell شما قادر خواهید بود کلیه دستورات سیستمی را فراخوانی کنید .
فعال سازی مجوز استفاده از xp_cmdshell در SQL Server در نسخه 2000 ، xp_cmdshell بصورت پیشفرض فعال است . اما به دلیل اینکه فعال بودن این امکان برای همه خطرات جبران ناپذیری در پی دارد لذا تنها کاربرانی که در گروه sysadmin هستند می توانند از این امکان استفاده کنند. در صورتیکه کاربر عضو نباشد و اقدام به اجرای این دستور کند خطای زیر را مشاهده می کند. Msg 15281, Level 16, State 1, Procedure xp_cmdshell, Line 1 SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', see "Surface Area Configuration" in SQL Server Books Online. در نسخه 2005 ، xp_cmdshell بصورت پیشفرض فعال نیست ، برای فعال کردن دو راه وجود دارد: 1- فعال کردن از طریق اجرای command : در این روش برای فعال کردن باید دستورات زیر را اجرا نمائید:
EXEC sp_configure 'show advanced options', 1 RECONFIGURE EXEC sp_configure 'xp_cmdshell', 1 RECONFIGURE 2- فعال سازی از طریق SQL Server 2005 Surface Area Configuration
برای فعال سازی بر روی Start کلیک کرده و در بخش All Programs به Microsoft SQL Server 2005 و سپس به زیر شاخه Configuration Tools بروید ، حال گزینه SQL Server Surface Area Configuration بروید . در پنجره باز شده بر روی گزینه Surface Area Configuration for features کلیک کرده و در پنجره باز شده در زیر شاخه Database Engine بر روی آیتم xp_cmdshell کلیک کرده و آیتم Enable xp_cmdshell را تیک بزنید و بر روی Apply و سپس OK کلیک نمائید. حال xp_cmdshell آماده استفاده است و شما می توانید با فراخوانی این SP دستورات سیستمی را از طریق xp_cmdshell اجرا نمائید.در زیر تصویر صفحه مربوطه را مشاهده می فرمائید: مثال : EXEC master..xp_cmdshell 'dir c:\' در نظر داشته باشید که کاربری میتواند از این SP استفاده کند که در گروه sysadmin عضو باشد.
|
|
|
راه اندازی Full Text Indexing از طریق T-SQL
برای فعال سازی Full Text Indexing از طریق T-SQL و استفاده از امکانات این سرویس جهت جستجو در محتویات پایگاه داده خود می توانید دستور زیر را بر روی پایگاه داده مورد نظر خود اجرا نمائید :
USE [Database Name] EXEC sp_fulltext_database 'enable' همچنین برای غیر فعال کردن هم می توانید از دستور زیراستفاده نمائید: USE [Database Name] EXEC sp_fulltext_database 'disable'
برای مشاهده وضعیت فعال بودن و یا نبودن سرویس Full Text Indexing بر روی یک پایگاه داده هم می توانید از دستور زیر استفاده نمائید. SELECT DATABASEPROPERTY('Database Name', 'IsFullTextEnabled');
بذیهی است که 1 به معنای فعال بودن و صفر به معنای غیر فعال بودن است . مقدار Null هم یکی دیگر از مقدارهای بازگشتی است که برای مثال می تواند به این دلیل باشد که پایگاه داده ای که وارد کرده اید وجودندارد.
|
|
|
Thursday, December 13, 2007
|
 |
|
 |
|
کار با تاریخ در T-SQL
T-SQL امکانات خیلی خوبی در رابطه با پردازش بر روی تاریخ در اختیار برنامه نویسان پایگاه داده قرار داده است که حجم کد نویسی شما جهت پردازش تاریخ و زمان را بسیار کاهش می دهد . در این پست قصد دارم تعدادی از این توابع را معرفی کنم :
تابع GetDate : این تابع همانطور که از نام آن مشخص است وظیفه برگرداندن تاریخ فعلی سیستم را دارد.خروجی شامل تاریخ فعلی و زمان فعلی می باشد. جهت مشاهده اطلاعات بیشتر در رابطه با این تابع کلیک کنید.
تغییر فرمت تاریخ، تایع Convert: T-SQL امکانات خیلی خوبی برای فرمت نمایش تاریخ نیز دارد ، به طور مثال امکان نمایش تنها تاریخ ، تنها زمان ، استفاده از / به جای - و ... از جمله امکاناتی است که در T-SQL در نظرگرفته شده است .برای این کار کافیست از تابع CONVERT استفاده نمائید. به طور مثال برای به دست آوردن تنها تاریخ فعلی سیستم و بصورتی که از / بجای - استفاده شود ، میتونیم Query زیر را اجرا نمائیم. SELECT CONVERT(nvarchar,GetDate(),111) سه پارامتری که این تابع دریافت می کند نوع خروجی ، ورودی و الگوی خروجی می باشد که بطور مثال 111 کد مربوط به نمایش تاریخ با استفاده از / به جای - می باشد. جهت مشاهده فهرست الگوها برای تاریخ کلیک کنید. اختلاف تاریخ ها DateDiff:
این تابع هم برای محاسبه تفاوت بین دو تاریخ محاسبه می شود . این تابع سه پارامتر ورودی دارد ، اولین پارامتر واحد تفاوت می باشد ، به طور مثال اگر شما بخواهید اختلاف بین دو تاریخ را بر حسب تعداد روز بدانید باید از day بعنوان اولین ورودی استفاده نمائید ، دومین و سومین هم دو تاریخی می باشند که تفاوت آنها را با هم محاسبه کنید . جهت کسب اطلاعات بیشتر در مورد این تابع و پارامترهای ورودی آن کلیک کنید. اضافه کردن به تاریخ DateAdd:این تابع هم برای اضافه کردن یک مقدار به تاریخ فعلی می باشد ، این مقدار می تواند سال ، ماه ، روز ، ساعت و ... باشد . البته جهت کسر کردن مقداری از تاریخ هم از همین تابع استفاده می شود ، بدین صورت که پارامتر ورودی یک مقدار منفی می باشد .این تابع سه ورودی دارد اولی واحد اضافه شدن و یا کسر شدن است ، مثل day , month , year , ... ، دومی مقداری است که باید اضافه و یا کسر شود و سومین پارامتر تاریخی است که پردازش باید بر روی آن صورت گیرد . جهت کسب اطلاعات بیشتر در رابطه با این تابع کلیک کنید. لینک های مرتبط :- مرجع دستورات T-SQL در MSDN-مرجع کامل توابع کار با تاریخ در MSDN
|
|
|
Wednesday, November 28, 2007
|
 |
|
 |
|
دسترسی به مقدار خروجی یک Stored Procedure توسط T-SQL
اگر بخواهیم تو برنامه نویسی سمت Database هم یک نوعی مرتب برنامه نویسی کنیم استفاده از SP و ... چیزی دور از ذهن نخواهد بود ، تو کد نویسی ها هم بخش هائی هستند که باید بصورت مجزا نوشته شوند . یه مثال ساده ، همین تبدیل تاریخ ، تو سی شارپ میائیم کلاس براش تعریف می کنیم و یک سری Property و متد و ... همه کارها تو این کلاس انجام میشه و کلاس های دیگه کار فراخوانی متدها را انجام میدهند ، همین مثال تو T-SQL هم هست فرض کنید یک جائی قرار باشه که تاریخ رو به شمسی تبدیل کنید و مجبور باشید حتما اون بالا رو SQL Server این کار انجام بشه خوب تعریف یک SP برای این کار خیلی خوبه ، SP تعریف می کنیم یک ورودی که تاریخ میلادیه و یه خروجی که تاریخ شمسی است . CREATE STORED PROCEDURE TestSP @Input int, @Output int output AS SET @Output = @Input + 1; GO
خوب با نسبت دادن output به Output@ در واقع نوع این پارامتر را خروجی تعریف می کنیم و می توانیم به مقدار ان در کد فرخوان دسترسی داشته باشیم. حال SP فوق را به شکل زیر صدا می زنیم : DECLARE @result int; EXEC TestSP 1,@result OUT SELECT @result همانطور که مشاهده کردید با نسبت دادن OUT به result@ می توانیم به مقدار خروجی این SP دسترسی داشته باشیم.
|
|
 |
|
 |
|
تغییر Owner جداول و SP ها در SQL Server
حتما برایتان پیش آمده که بخواهید Owner یک جدول و یا تمامی جداول پایگاه داده خود را تغییر دهید . این امر به دلایل مختلفی احساس می شود اما یکی از راه های پیش روی شما برای تغییر دادن Owner تمامی جداول موجود در پایگاه داده شما به یک Owner جدید به شکل زیر می باشد:
DECLARE @old sysname, @new sysname, @sql varchar(1000)
SELECT @old = 'oldOwner_CHANGE_THIS' , @new = 'dbo' , @sql = ' IF EXISTS (SELECT NULL FROM INFORMATION_SCHEMA.TABLES WHERE QUOTENAME(TABLE_SCHEMA)+''.''+QUOTENAME(TABLE_NAME) = ''?'' AND TABLE_SCHEMA = ''' + @old + ''' ) EXECUTE sp_changeobjectowner ''?'', ''' + @new + ''''
EXECUTE sp_MSforeachtable @sql
و اما اگر میخواهید این کار رو بر روی تمامی Stored Procedure های موجود انجام بدهید می توانید به شکل زیر عمل کنید :
DECLARE @oldOwner sysname, @newOwner sysname
SELECT @oldOwner = 'oldOwner_CHANGE_THIS' , @newOwner = 'dbo'
select 'EXECUTE sp_changeobjectowner '''+QUOTENAME(a.SPECIFIC_SCHEMA) +'.'+QUOTENAME(a.ROUTINE_NAME)+''','''+@newOwner+'''' from INFORMATION_SCHEMA.ROUTINES a where a.ROUTINE_TYPE = 'PROCEDURE' AND a.SPECIFIC_SCHEMA = @oldOwner AND OBJECTPROPERTY(OBJECT_ID(QUOTENAME(a.SPECIFIC_SCHEMA) +'.'+QUOTENAME(a.ROUTINE_NAME)), 'IsMSShipped') = 0
|
|
|
 |