テーブル情報にテーブル名を付けて取得しようとしているので、次のようなクエリを作成しました。
SELECT so.name, sc.name, st.name, sc.length, CASE WHEN sc.status = 0x80 THEN 'Y' ELSE 'N' END AS IsIdent, ColOrder
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」という名前のテーブルが2つあるのに、スキーマが異なることです。したがって、このクエリを実行すると、次のようになります。
SELECT * FROM Asdim.dbo.sysobjects WHERE name LIKE 'Admin'
テーブル名が同じであるため、2つのレコードを取得します。スキーマ名に基づいてフィルターで除外する方法はありますか?