Hi,
As of my understanding , collation is DB Level or Server level property , but not at the column level which we can change.
You are totally wrong
A COLLATE can be configure in the instance level, DB level, Column Level, and query level.
In fact, a good architect which worked well with global databases will probably make sure to configure the COLUMN COLLATE in many cases, in order to prevent issues.
For full information you can check the documentation regarding ALTER TABLE or regarding CREATE TABLE. Check the options of using COLLATE for the column configuration
A simple example:
CREATE TABLE MyTbl (
id int,
txt VARCHAR(100) COLLATE Latin1_General_BIN2
)
GO
but for some columns it says NULL as Collation. is this possible?
Obviously is this is what you get then the answer is yes. It's a fact if you get it :-)
The explanation is that not all data type has a COLLATE for example INT will show null in the COLLATE name
use tempdb
GO
DROP TABLE IF EXISTS MyTbl
GO
CREATE TABLE MyTbl (
id int,
txt VARCHAR(100) COLLATE Latin1_General_BIN2
)
GO
SELECT TABLE_CATALOG,TABLE_SCHEMA,TABLE_NAME, COLUMN_NAME, COLLATION_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'MyTbl'
GO
If you want some more more focused explanation regarding your specific case and you cannot teach us to read minds, then please provide a fully reproducible information, starting with queries to create the table and insert a few rows and information about your database COLLATE and the table column collate