SELECT ... INTO
необходимо создать таблицу, если таблица существует, используйте INSERT INTO ... SELECT ..FROM
И
, в вашем случае вам нужно запустить SP следующим образом:
EXEC dbo.moving 'table1', 'table2'
НО
EXEC('Select * into '+@to_table+' from '+@from_table)
не будет работать, вам нужно переписать его с переменной:
declare @sql nvarchar(max)
SET @sql = N'Select * into ['+@to_table+N'] from ['+@from_table+N']'
EXEC(@sql)
НО
вам также нужно беспокоиться о инъекциях sql и именах сложных таблиц по крайней мере , поэтому - для сложных имен таблиц я ужеобрамляйте свои таблицы квадратными скобками, и вам нужно что-то сделать, чтобы предотвратить инъекции sql.
И еще раз - SELECT...INTO
работает, только если вы создаете новую таблицу с именем из @to_table
параметр