Я пытаюсь написать сценарий базы данных (SQL Server 2008), который скопирует информацию из таблиц базы данных на одном сервере в соответствующие таблицы в другой базе данных на другом сервере.Использование значений параметров В SQL-заявлении
Я прочитал, что правильный способ сделать это состоит в использовании SQL заявления, в формате, аналогичном следующий:
INSERT INTO <linked_server>.<database>.<owner>.<table_name> SELECT * FROM <linked_server>.<database>.<owner>.<table_name>
Как будет несколько таблиц копируются, я хотел бы объявить переменные в верхней части сценария, чтобы пользователь мог указать имена каждого сервера и базы данных, которые будут использоваться. Затем они могут использоваться во всем скрипте. Однако я не уверен, как использовать значения переменных в действительных операциях SQL. То, что я хочу достичь, это что-то вроде следующего:
DECLARE @SERVER_FROM AS NVARCHAR(50) = 'ServerFrom'
DECLARE @DATABASE_FROM AS NVARCHAR(50) = 'DatabaseTo'
DECLARE @SERVER_TO AS NVARCHAR(50) = 'ServerTo'
DECLARE @DATABASE_TO AS NVARCHAR(50) = 'DatabaseTo'
INSERT INTO @[email protected]_TO.dbo.TableName SELECT * FROM @[email protected]_FROM.dbo.TableName
...
Как следует использовать @ переменные в этом коде, для того, чтобы правильно работать?
Кроме того, как вы думаете, мой метод выше правильно для того, чего я пытаюсь достичь, и должен ли я использовать NVARCHAR (50) как мой тип переменной или что-то еще?
Благодаря