• A different take on what you are doing, wouldn't hurt to give it a try:

    /* Provide test data for building script */

    declare @DB_NAME nvarchar(128),

    @SCHEMA_NAME nvarchar(128),

    @TABLE_NAME nvarchar(128),

    @COLUMN_NAME nvarchar(128);

    select

    @DB_NAME = 'TEST',

    @SCHEMA_NAME = 'dbo',

    @TABLE_NAME = 'TBL_1',

    @COLUMN_NAME = 'TCode';

    /****************************************/

    declare @SQLCmd nvarchar(max),

    @SQLParm nvarchar(max);

    set @SQLCmd = N'

    WITH BlankCount as (

    SELECT

    BLANK_COUNT = COUNT(*)

    FROM

    [' + @DB_NAME + N'].[' + @SCHEMA_NAME + N'].[' + @TABLE_NAME + N'] tc

    WHERE

    tc.[' + @COLUMN_NAME + N'] = ''''

    )

    UPDATE [dbo].[Data_Profile_Stats] SET

    BLANK_COUNT = (select BLANK_COUNT from BlankCount)

    WHERE

    [DB_NAME] = @DBNAME AND

    SCHEMA_NAME = @SCHEMANAME AND

    TABLE_NAME = @TABLENAME AND

    COLUMN_NAME = @COLUMNNAME;'

    set @SQLParm = N'@DBNAME nvarchar(128), @SCHEMANAME nvarchar(128), @TABLENAME nvarchar(128), @COLUMNNAME nvarchar(128)';

    print @SQLCmd;

    exec sp_executesql @SQLCmd, @SQLParm, @DBNAME = @DB_NAME, @SCHEMANAME = @SCHEMA_NAME, @TABLENAME = @TABLE_NAME, @COLUMNNAME = @COLUMN_NAME;