在SQL Server中,我希望看到Table_Name以及与该Table_Name在数据库中关联的所有列。所以输出应该是这样的:逗号分隔数据库中所有列的列表(Tablename | Column_names ...)
TABLE_NAME COLUMN_NAME
1. Employee Employee-id, Lastname, Firstname, Title...........
2. Orders Orderid, Order-date, shipped-date, delivery-date.......
3. Products Product-id, Product-name, supplier-id, category-id.....
4. Suppliers Supplier-id, Company-name, contact-name.......
5. ............................................................
6. ...................................................
(So on....)
是否有可能通过WHILE LOOP或其他方式获得上述结果?如果是,您可以发布代码吗?
而且,我试图用一个临时表做到这一点的问题:
create table #hello
(table_name1 Varchar(max))
insert into #hello(table_name1)
select table_name from information_schema.columns
GO
create table #hello2
(table_name2 varchar(max),column_name2 varchar(max))
insert into #hello2(table_name2 ,column_name2)
select table_name,column_name from information_schema.columns
GO
select a.table_name1,b.column_name from #hello a inner join
information_schema.columns b
on a.table_name1=b.table_name COLLATE Latin1_general_CI_AS
order by table_name
GO
我在垂直列出列是成功的,但我不能让列逗号分隔的列表。
我们没有建立它。 – 2011-02-08 18:10:43
@OMG小马:我不明白为什么不。如果他们给出了一个有趣的问题,并且你可以用“这是你怎么做的:<代码片段>”来回答,那你为什么不呢?我知道它可以帮助我学习如何做一些事情来查看我的问题域的相关示例。 并非所有的用户都可能想为其他用户构建查询,但我不知道为什么要尝试为社区发言并说“我们不这样做”。我个人喜欢通过提供查询他们正在处理的问题来帮助人们。 (对不起长段落,我不知道如何输入换行符......) – 2011-02-08 23:47:12
@Jeremy Pridemore,为什么我应该试图帮助那些希望我能够完成他所付出的工作的人?有人应该表明,他们至少已经尝试过或者在问他们需要知道什么,开始尝试不直接要求完成的代码以供其他人编写。 – HLGEM 2011-02-09 16:37:19