1. No lo he probado pero al parecer no se puede usar una variable en una sentencia alter table. En este caso podrias crear una sentencia dinamica, algo asi:
Código sql:
Ver originalDECLARE @SQL VARCHAR(1000)
DECLARE @NombreCampo VARCHAR(15)
SET @NombreCampo = 'PrecioVIP'
SET @SQL = 'ALTER TABLE Cat_Articulos ADD ' + @NombreCampo + 'REAL'
EXEC sp_execute_sql @SQL
2. Igual, necesitas sql dinamico.
3. Si.
Código SQL:
Ver originalINSERT INTO tabla EXEC TuProcedimientoA