Technical Article

Get all fields names for all tables in SQL

,

I recently worked on a project that needs to convert Notes database to a web project. The first thing is to export data from Notes DB to SQL. Since Notes is NOT a relationship database, after the export, I found the column names are very confusing, so the task becomes how to interpret the relationship between the columns. I decided that it is neccesary to find out every column name in every table and start the analysis from there. I was able to write a script to generate all the columns names and their tables names using this script, I hope you find it helpful.

USE [SH]
GO

/****** Object:  StoredProcedure [dbo].[spGetAllFieldsNamesInAllTables]    Script Date: 06/19/2013 15:13:59 ******/SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE  proc [dbo].[spGetAllFieldsNamesInAllTables] 
AS
--this sp will go through all the sp and fn and grant exec to @Role 
declare @TableName varchar(100)
declare @ColumnName varchar(100)

declare @sql varchar(1000)

if not exists (select * from sys.objects where [name] = 'TableColumns')
create table TableColumns
(
[TableName] varchar(100),
[ColumnName] varchar(100)
)

declare c cursor for
SELECT name
FROM sys.objects
WHERE type_desc LIKE '%TABLE%' and Type = 'U'
order by [name]

OPEN c
FETCH NEXT FROM c 
INTO @TableName

WHILE @@FETCH_STATUS = 0
BEGIN
set @sql = '
insert into TableColumns (TableName, ColumnName)
select ' + '''' + @TableName + '''' + ', column_name from information_schema.columns
where table_name = ' + '''' + @TableName + '''' 
+ ' order by ordinal_position '


 
exec (@sql)


  FETCH NEXT FROM c 
    INTO @TableName
    
END
CLOSE c
DEALLOCATE c



GO

Rate

3.67 (3)

You rated this post out of 5. Change rating

Share

Share

Rate

3.67 (3)

You rated this post out of 5. Change rating