【发布时间】:2011-06-23 15:00:41
【问题描述】:
在 SQL Server 中,我希望在数据库中查看 Table_Name 以及与该 Table_Name 关联的所有列。所以输出应该是这样的:
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
我成功地垂直列出了列,但我无法获得逗号分隔的列列表。
【问题讨论】:
-
@OMG Ponies:我不明白为什么不这样做。如果他们给出了一个有趣的问题,并且您可以回答“这就是您这样做的方式:”,那么您为什么不呢?我知道它可以帮助我学习如何做一些事情来查看与我的问题域相关的示例。并非所有用户都想为另一个用户构建查询,但我不知道您为什么要尝试为社区发言并说“我们不这样做”。我个人喜欢通过提供有关他们正在处理的问题的查询来帮助人们。 (对不起,很长的一段,我不知道如何输入换行符......)
-
@Jeremy Pridemore,我为什么要帮助那些希望我做他有报酬的工作的人?有人应该表明他们至少尝试过或正在询问他们需要知道什么才能开始尝试不直接要求其他人编写完整的代码。
-
我以为我发布了带有问题的代码,但我没有。我尝试用 Temp Tables 解决这个问题,并在问题下方发布了我不成功的代码。感谢您的所有 cmets 和支持。
标签: sql sql-server sql-server-2005 tsql while-loop