2011-10-07 115 views
1

我想获取给定表的列名。所以我写了这样一个查询:从表中获取列名

SELECT sc.Name 
    FROM  Asdim.dbo.sysobjects so 
      INNER JOIN Asdim.dbo.syscolumns sc ON so.id = sc.id 
      INNER JOIN Asdim.dbo.systypes st ON sc.xtype = st.xusertype 
    WHERE so.Name = 'Admin' 

问题是我有两个名字为'Admin'的表,但他们有不同的模式。所以当我运行这个查询:

SELECT * FROM Asdim.dbo.sysobjects 
WHERE name LIKE 'Admin' 

我得到两个记录,因为表名是相同的。有没有一种方法可以根据模式名称过滤掉?

回答