I have the following table
CREATE TABLE [OMEGACA].[ACC_POL] ( [POLICY_ID] [int] IDENTITY(1,1) NOT NULL, [POLICY_NAME] [nvarchar](200) NOT NULL, [POLICY_DESC] [nvarchar](1000) NULL, [STATUS_ID] [int] NOT NULL, [RULE_EVAL] [int] NOT NULL, [AUDIT_OPTION] [int] NOT NULL, [FORMULA] [nvarchar](2000) NULL, [DEBUG_LOG] [int] NOT NULL, [USER_APPLY] [int] NOT NULL, [USE_CACHE] [int] NOT NULL, [DATE_UPD] [datetime] NULL, [USER_UPD] [nvarchar](200) NULL, [DATE_CREATED] [datetime] NOT NULL, [USER_CREATED] [nvarchar](200) NOT NULL, ..... ) And I also have the following view:
When I query the view V_ACC_POL, I get datatype VARCHAR for column POLICY_NAME from the view:
I was expecting it to be NVARCHAR (as in the base table).
Questions:
- Why is the
NVARCHARcolumn in the base table turn into aVARCHARcolumn in the view? - How can I have it in the view as
NVARCHAR?


exec sys.sp_refreshsqlmodule @name = 'V_ACC_POL', @namespace = N'OBJECT'which refreshes view, this isn't done automaticallyvarcharin the past? Also I would rather trustsys.columnsand not bother withINFORMATION_SCHEMA: sqlblog.org/2011/11/03/…sys.columnsas a fix. Just as a much better option in general.