У вас нет скобок вокруг параметров в первом:
CREATE procedure [dbo].[sp_name] @mainSorsTbl nvarchar(50), @mainSorsClmn nvarchar(max),@fromTable nvarchar(50), @fromColumn nvarchar(max), @toTable nvarchar(50), @toColumn nvarchar(max)
as
begin....
Должно быть:
CREATE procedure [dbo].[sp_name]
( @mainSorsTbl nvarchar(50), @mainSorsClmn nvarchar(max),@fromTable nvarchar(50), @fromColumn nvarchar(max), @toTable nvarchar(50), @toColumn nvarchar(max)
)
as
begin....
, иначе это не будет работать
Также ALTER будет работать, только если процедура уже существует.
Обходной путь для более новых версий SQL - использовать
CREATE OR ALTER PROCEDURE sprocname