1
我想根據列名,類型等查詢一組表。我基本上不知道表的名稱,我想查詢數據庫中所有能夠存儲表的表數據進入。根據列信息查詢表名
我有這個查詢,但我不知道它是否非常有效。我想知道是否有更好的方法。
SELECT O.TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS AS O
INNER JOIN INFORMATION_SCHEMA.COLUMNS AS R1
ON R1.TABLE_NAME = O.TABLE_NAME and R1.COLUMN_NAME = 'Id' and R1.DATA_TYPE = 'uniqueidentifier'
INNER JOIN INFORMATION_SCHEMA.COLUMNS as R2
ON R2.TABLE_NAME = O.TABLE_NAME and R2.COLUMN_NAME = 'Message' and R2.DATA_TYPE = 'nvarchar'
INNER JOIN INFORMATION_SCHEMA.COLUMNS AS R3
ON R3.TABLE_NAME = O.TABLE_NAME and R3.COLUMN_NAME = 'EnteredOn' and R3.DATA_TYPE = 'datetime'
GROUP BY O.TABLE_NAME
此查詢當前有效,但我覺得必須有更好的方法。基本上我不希望其他表顯示可能有名稱爲Id的列而不是列Message和EnteredOn。
這是表的CREATE TABLE查詢。
CREATE TABLE [dbo].[Log](
[Id] [uniqueidentifier] ROWGUIDCOL NOT NULL,
[Message] [nvarchar](2048) NULL,
[EnteredOn] [datetime] NOT NULL,
CONSTRAINT [PK_Log] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
願我們問爲什麼? – gbn 2009-12-29 20:43:26
當然,但我認爲我回答了這個問題?我想向需要從此列表中選擇的接口提供可能的表的列表。基本上,我的界面需要獲得與特定模式匹配的表的列表,以確保正確的列可供使用。 – 2009-12-29 21:14:54