PDA

View Full Version : بدست اورد تمام فیلدهای کلید اصلی در جداول یک پایگاه



sn_tondar
پنج شنبه 23 آذر 1391, 10:20 صبح
میخواهم تمام فیلدهای کلید اصلی رو داخل تمام جداول پایگاه بدست بیاورم

alihassanabadi
پنج شنبه 23 آذر 1391, 12:58 عصر
سلام
کد


SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu ON tc.CONSTRAINT_NAME = ccu.Constraint_name
WHERE tc.CONSTRAINT_TYPE = 'Primary Key'

در نتیجه خروجی این دستور یه فیلد به اسم COLUMN_NAME هستد که فیلد کلید های جدول های بانک میشه
و اما کد خلاصه تر و شاید بهتر


SELECT Col.Column_Name from
INFORMATION_SCHEMA.TABLE_CONSTRAINTS Tab,
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE Col
WHERE
Col.Constraint_Name = Tab.Constraint_Name
AND Col.Table_Name = Tab.Table_Name
AND Constraint_Type = 'PRIMARY KEY '

موفق باشد

sn_tondar
پنج شنبه 23 آذر 1391, 16:21 عصر
برای ساخت پروسیجری که بر روی همه جداول پایگاه اینسرت انجام دهد
ابتدانام جداول وسپس از این طریق
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YourTableName' و نام فیلدهای هر جدول رو بدست اوردم وداخل کرسر گذاشتم اما به فیلد کلید هنگام درج گیر میده چطور میشه همه فیلدها رو به غیر از کلید داشت یا شرطی گذاشت برای جلوگیری