PDA

View Full Version : سوال: نحوه پیدا کردن نام کلید یک جدول



Mahdi Salami
چهارشنبه 17 شهریور 1389, 18:34 عصر
با سلام به تمام دوستان.
میخواستم بدونم توی Sql 2008 چطوری میشه توی یه SP به راحتی و بدون دردسر نام کلید یه جدول رو بدست آورد و اون رو توی یه متغیر ذخیرش کرد؟
با تشکر از توجه همه

بهزادصادقی
چهارشنبه 17 شهریور 1389, 19:35 عصر
با معذرت، وازه «کلید جدول» مفهوم واقع نمی شود. آیا منطور شما «کلید اصلی جدول» می باشد و یا کلید هر یک از ایندکس های جدول؟

s.Jabbari
چهارشنبه 17 شهریور 1389, 22:24 عصر
سلام اقای صادقی
کلید ایندکس چیه؟

بهزادصادقی
چهارشنبه 17 شهریور 1389, 22:28 عصر
عبارت، ستون، یا ستون هایی که ایندکس را بر اساس آن تعریف می کنید.

مثلا، در این ایندکس



create index MyIndex on MyTable ( id, LastName );


کلید اندکس ما id, LastName می باشد.

Mahdi Salami
پنج شنبه 18 شهریور 1389, 09:36 صبح
با تشکر از توجه دوستان
بله، منظور من کلید اصلی جدول هست. ممنون میشم اگه راهنمایی کنید.

بهزادصادقی
جمعه 19 شهریور 1389, 00:16 صبح
شما می توانید از کد زیر استفاده کنید. فقط به جای عبارت MyTable در سطر دوم، اسم جدول خویش را جایگزین کنید.



declare @TableName varchar(128)
select @TableName = 'MyTable'

select c.COLUMN_NAME
from INFORMATION_SCHEMA.TABLE_CONSTRAINTS pk ,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE c
where pk.TABLE_NAME = @TableName
and CONSTRAINT_TYPE = 'PRIMARY KEY'
and c.TABLE_NAME = pk.TABLE_NAME
and c.CONSTRAINT_NAME = pk.CONSTRAINT_NAME


در ضمن، این کد را از اینجا برداشته ام:

http://www.nigelrivett.net/SQLTsql/ColumnsInPK.html