В Oracle PL-SQL вы можете объявить переменную и определить ее тип на основе столбца таблицы:
declare var1 table.column%TYPE;
Можно ли сделать что-то подобное в MS SQL Server?
Нет, ты не можешь сделать это. Ближайший эквивалент User-Defined Data Types. Это даст вам уровень абстракции, который может помочь, но это не то же самое, что получение типа из столбца.
User-Defined Data Types
Это может обойти реальную проблему, но вы можете "обмануть" немного
Select * INTO #tmp From MyTable Where 1 = 0
Будет автоматически создавать временную таблицу со всеми столбцами с правильными типами данных.