كيف أنظر إلى العمولة العميلة في Sybase؟
-
05-09-2019 - |
سؤال
لدي قائمة بالأعمدة أعطيتني عامل مشارك، لكن هذه الأعمدة موجودة في جداول مختلفة في DB. هل هناك نوع من الأداة في Sybase حيث يمكنني الاستعلام عن الجدول الذي ينتمي إليه العمود؟
(لقد جربت Google-Ing لهذا النوع من الأدوات، ولكن لا حظ حتى الآن)
المحلول
Syscolumns تحمل بيانات التعريف العمود.
حدد * من Syscolumns حيث الاسم =؛
عمود المعرف في Syscolumns هو معرف جدول العمود، في Sysobjects؛
select b.name as tablename, a.name as columnname
from syscolumns a join systables b on (a.id = b.id)
where b.type='U' and b.name = 'foo';
يحصل جميع الأعمدة على الجدول المسمى 'foo'. النوع = 'U' يحدها إلى جداول المستخدم.
select b.name as tablename, a.name as columnname
from syscolumns a join systables b on (a.id = b.id)
where b.type='U' and a.name = 'foo';
يحصل جميع الأعمدة المسماة "foo".
ستستخدم معظم الإصدار الحالي من ASE sysbojects
بدلا من systables
نصائح أخرى
اضطررت إلى إجراء بعض التغييرات الصغيرة لعملها:
select b.name as tablename,
a.name as columnname
from dbo.syscolumns a
join sysobjects b on a.id = b.id
where b.type='U'
and upper(a.name) like '%FOO%' -- wildcard search for column name
and b.name = 'bar' -- exclude tables
order by b.name
يمكنك العثور على المعلومات لأي عمود في:
SELECT *
FROM sys.syscolumns
إذا كنت تريد أن تعرف ما ينتمي إلى أي جدول
SELECT cname, tname
FROM sys.syscolumns
WHERE tname IN ('col_1', 'col_2')
ملاحظة: يمكنني اختبار هذا في Sybase ASA 9.
لا تنتمي إلى StackOverflow