I need to alter a table to change a nvarchar column to varchar column. The problem is that the column already contained many data. Before altering the table, I want to know if such a conversion is safe or not for all existing data because varchar does not cover all unicode code points.
Run a query like this on the table and if it returns any rows then you are going to lose unicode data, or at least it will be different after converting to varchar. Assuming your nvarchar is 20 characters (change the query to match how long your nvarchar is)
SELECT yourcol AS [Unicode], cast(yourcol as varchar(20)) AS [NonUnicode] FROM yourtable WHERE yourcol <> cast(yourcol as varchar(20))