我需要一种从查询结果中获取列定义的方法。现在我正在使用SQL Server 2012。
以下是示例场景,我有两个表,它们是Event和Attendant,其定义如下:
CREATE TABLE [dbo].[Event] (
[Id] INT NOT NULL,
[Name] NVARCHAR (50) NULL,
[Description] NVARCHAR (50) NULL,
[StartDate] DATETIME NULL,
[EndDate] DATETIME NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
CREATE TABLE [dbo].[Attendant] (
[Id] INT NOT NULL,
[EventId] INT NOT NULL,
[Name] NVARCHAR (50) NULL,
[Company] NVARCHAR (50) NULL
PRIMARY KEY CLUSTERED ([Id] ASC)
);
然后我有查询,例如:
SELECT Event.Name as EventName, Attendant.Name as GuestName
FROM Event
INNER JOIN Attendant ON Event.Id = Attendant.EventId
如何获取上述示例查询结果的列定义?我的目标是使用c#生成poco类来表示任何查询结果的每个记录。
答案 0 :(得分:0)
您可以使用sp_columns sproc来检索有关指定表的列定义的信息......如下所示:
exec sp_columns Attendant
答案 1 :(得分:0)
使用sp_columns
,它返回指定对象(表)的列信息。
有关详细信息,请参阅此link。
答案 2 :(得分:0)
select * from information_schema.columns where table_name = '<tablename>'