declare  @dose_inj_column_type int
declare @dose_inj_column_max_length int

SELECT @dose_inj_column_type = system_type_id
, @dose_inj_column_max_length = max_length
FROM sys.columns 
WHERE Name = N'DOSE_INJ'
AND Object_ID = Object_ID(N'IES.T_SCHET_USL_ONK_LEK_PR')

print 'columnt_type: ' + isnull(convert(varchar(5),@dose_inj_column_type),'null') + ' ' + convert(varchar(10), getdate(), 104) + ' ' + convert(varchar(8), getdate(), 114)
print 'dose_inj_column_max_length: ' + isnull(convert(varchar(5),@dose_inj_column_max_length),'null') + ' ' + convert(varchar(10), getdate(), 104) + ' ' + convert(varchar(8), getdate(), 114)

if @dose_inj_column_type is null
begin
	
	print 'Поле IES.T_SCHET_USL_ONK_LEK_PR.DOSE_INJ НЕ найдено - создаём!' + ' ' + convert(varchar(10), getdate(), 104) + ' ' + convert(varchar(8), getdate(), 114)			
	alter table IES.T_SCHET_USL_ONK_LEK_PR add DOSE_INJ varchar(20)
end
else
begin
	if @dose_inj_column_type != 167 --не varchar
	begin		
		print 'Поле IES.T_SCHET_USL_ONK_LEK_PR.DOSE_INJ найдено, но имеет неподходящий тип - переименуем текущее и создадим новое!' + ' ' + convert(varchar(10), getdate(), 104) + ' ' + convert(varchar(8), getdate(), 114)			
		EXEC sp_rename 'IES.T_SCHET_USL_ONK_LEK_PR.DOSE_INJ', 'DOSE_INJ_OLD', 'COLUMN';
		alter table IES.T_SCHET_USL_ONK_LEK_PR add DOSE_INJ varchar(20)
	end
	else --varchar
	begin
		if @dose_inj_column_max_length < 20 --маленькая длина
		begin
			print 'Поле IES.T_SCHET_USL_ONK_LEK_PR.DOSE_INJ найдено и имеет подходящий тип но не длину - увеличим' + ' ' + convert(varchar(10), getdate(), 104) + ' ' + convert(varchar(8), getdate(), 114)			
			alter table IES.T_SCHET_USL_ONK_LEK_PR alter column DOSE_INJ varchar(10)
		end
	end
end