вам придется использовать динамический SQL.Это то, что я делал раньше:
SET @sql = 'ALTER TABLE ' + @TableName +
'ADD ' + CONVERT(VARCHAR(100), @ColName) + ' ' +
CONVERT(VARCHAR(100), @TypeName) +
CASE WHEN @TypeName IN ('int', 'datetime', 'money', 'uniqueidentifier', 'bit')
THEN '' ELSE '(' + CONVERT(VARCHAR(10), @Prec) + ')' END + ' NULL'
EXEC(@sql)
это, вероятно, не охватывает все возможные типы данных, но для моих требований этого было достаточно.В любом случае, хорошее место для начала