mojtaba @ ۲۵ دي ۱۳۸۴-۲۱:۲۴

Extended Porperty

دیروز برای کامنت گذاری کدهای برنامه جدیدمون به Description فیلدهای دیتابیس احتیاج پیدا کردیم.کلی گشتم ولی هیچ نوع تابع توکاری برای گرفتن این گزینه پیدا نکردم. تا اینکه بهنام کشف کرد که این خصیصه جزو Extended Properties است. این نوع خصیصه ها برای هر فیلد تا 32 مورد (تا اونجایی که تو ذهنم است) تعریف می شوند. می توانید با هر نام و مقدار دلخواه آنها را ست نمایید. برای ست کردن آنها از Query Analyzer کافی است روی فیلد مورد نظرتان کلیک راست کرده و گزینه ExtendedProperties  را انتخاب نمایید. سپس مقادیر جدید یا موجود را ست نمایید.

برای دسترسی به این خصایص چند تابع توکار SQL وجود دارد که در بخش پایین براتون می نویسم.
 اضافه کردن :

sp_addextendedproperty   [ name ] , [ value ]  , [ level0type ] , [ level0nam ] , [ level1type ] , [ level1name] , [ level2type ] ,  [ level2name ] , [ level2type]
    

مثال :

EXEC   sp_addextendedproperty 'caption' , 'Employee ID' , 'user' , 'dbo' , 'table' , 'T1' , 'column' , 'id'

به روزرسانی :

sp_updateextendedproperty   [ name ] , [ value ]  , [ level0type ] , [ level0nam ] ,[ level1type ] , [ level1name] , [ level2name ] ,  [ level2type ] , [ level2type ]

حذف :

sp_dropextendedproperty   [ name ] , [ level0type ] , [ level0name ] ,[ level1type ] , [ level1name] , [ level2type ] ,  [ level2name ] , [ level2type ]

برای گرفتن مقدار یک خصیصه هم از تابع زیر استفاده کنید :

FN_LISTEXTENDEDPROPERTY  ( [ name ] , [ level0type ] , [ level0name ] ,[ level1type ] , [ level1name] , [ level2type ] ,  [ level2name ] , [ level2type ] )

مثال :

SELECT [value] FROM ::FN_LISTEXTENDEDPROPERTY( 'Caption' , 'User' , 'dbo' , 'table' , 'TestExProp' , 'culomn' , 'id')

توجه داشته باشید اگر مقدار Description فیلد خاصی از جدولتان را احتیاج دارید به جای نام در توابع بالا MS_Description قرار دهید.

نظر|  

 

:نام

:پست الکترونيک

:وب سايت

:پيام