Metadata COL_NAME SQL function


1. Usage of COL_NAME to get the name of the column at position 2 in customers table

SQL Server Query 1

            
 SELECT COL_NAME(OBJECT_ID('Customers'), 2) AS ColumnName;  

Create SQL query with SqlQueryBuilder 1

            
 var (sql1, parameters1) = new SqlQueryBuilder()  
.Select()
.Column(new COL_NAME(new OBJECT_ID("Customers"), 2), "ColumnName")
.Build();

Query build by SqlQueryBuilder 1

            
SELECT COL_NAME(OBJECT_ID(@pMAIN_2507200150427183860), @pMAIN_2507200150427183861) AS ColumnName;


            
        

Parameters (If used)

Name Value
@pMAIN_2507200150427183860 Customers
@pMAIN_2507200150427183861 2

Query Results 1:

  ColumnName
1 CompanyName


2. Usage of COL_NAME o find the column_id for a specific column in a customer table

SQL Server Query 2

            
 SELECT column_id AS Column_ID  
FROM sys.columns
WHERE object_id = OBJECT_ID('Customers')
AND name = 'ContactName';

Create SQL query with SqlQueryBuilder 2

            
 var (sql2, parameters2) = new SqlQueryBuilder()  
.Select()
.Column("column_id", "Column_ID")
.From("sys.columns")
.Where(new Where(new Column("object_id").Equale(new OBJECT_ID("customers")))
.AND(new Column("name").Equale("ContactName"))
)
.Build();

Query build by SqlQueryBuilder 2

            
SELECT column_id AS Column_ID
FROM sys.columns
WHERE object_id = OBJECT_ID(@pMAIN_2507200150427218150)
      AND name = @pMAIN_2507200150427218151;


            
        

Parameters (If used)

Name Value
@pMAIN_2507200150427218150 customers
@pMAIN_2507200150427218151 ContactName

Query Results 2:

  Column_ID
1 3


3. Usage of STATS_DATE the Names of All Columns in the Orders Table

SQL Server Query 3

            
 SELECT  
c.name AS ColumnName,
COL_NAME(t.object_id, c.column_id) AS ColumnNameFromFunction
FROM sys.tables t
INNER JOIN sys.columns c ON t.object_id = c.object_id
WHERE t.name = 'Orders'
ORDER BY c.column_id;

Create SQL query with SqlQueryBuilder 3

            
 var (sql3, parameters3) = new SqlQueryBuilder()  
.Select()
.Column("c.name", "ColumnName")
.Column(new COL_NAME(new Column("t.object_id"), new Column("c.column_id")), "ColumnNameFromFunction")
.From("sys.tables", "t")
.Join(new List<IJoin>()
{
new INNERJOIN().TableName("sys.columns", "c")
.On(new Column("t.object_id").Equale(new Column("c.object_id")))
})
.Where(new Where(new Column("t.name").Equale("Orders")))
.Build();

Query build by SqlQueryBuilder 3

            
SELECT c.name AS ColumnName,
       COL_NAME(t.object_id, c.column_id) AS ColumnNameFromFunction
FROM sys.tables AS t
     INNER JOIN
     sys.columns AS c
     ON t.object_id = c.object_id
WHERE t.name = @pMAIN_2507200150427388890;


            
        

Parameters (If used)

Name Value
@pMAIN_2507200150427388890 Orders

Query Results 3:

  ColumnName ColumnNameFromFunction
1 OrderID OrderID
2 CustomerID CustomerID
3 EmployeeID EmployeeID
4 OrderDate OrderDate
5 RequiredDate RequiredDate
6 ShippedDate ShippedDate
7 ShipVia ShipVia
8 Freight Freight
9 ShipName ShipName
10 ShipAddress ShipAddress
11 ShipCity ShipCity
12 ShipRegion ShipRegion
13 ShipPostalCode ShipPostalCode
14 ShipCountry ShipCountry