У меня проблема, я использую SQL Server 2014. Мне нужно скопировать данные из локальной таблицы в идентичную таблицу на удаленном сервере. Прямо сейчас я могу вставлять статические данные в удаленную таблицу, выбирать данные из удаленной таблицы, но я не мог делать то, что хочу.Вставить данные в таблицу удаленной базы данных из таблицы локальной базы данных
Вот мой код SQL
IF OBJECT_ID('tempdb..##TempTable') IS NOT NULL
DROP TABLE ##TempTable
CREATE TABLE ##TempTable
(
[Name] [nvarchar](255) NOT NULL,
[Description] [nvarchar](512) NOT NULL,
[ARXUrl] [nvarchar](1000) NOT NULL,
[IsDeleted] [bit] NULL,
[CreatedDate] [datetime] NOT NULL
);
GO
INSERT INTO ##TempTable
SELECT
[Name], [Description], [ARXUrl], [IsDeleted], [CreatedDate]
FROM [dbo].[ARXSystem]
GO
-- destination database
:SETVAR remoteDB [slic-test]
:CONNECT someserver.net\SQLEXPRESS2014 -U user -P password
--source database
USE [SLIC]
GO
SELECT *
FROM ##TempTable;
INSERT INTO $(remoteDB).[dbo].[ARXSystem]
SELECT *
FROM #TempTable
GO
и вот сообщение, которое я получил
(1 строка (s) пострадавших)
Подключение к someserver.net \ SQLEXPRESS2014 в SLIC ...
Msg 208, уровень 16, состояние 0, строка 22
Недопустимое имя объекта '## TempTable'.
Отсоединения соединения с someserver.net \ SQLEXPRESS2014 в SLIC ...
Вы пытаетесь выбрать данные из временной таблицы в пункте назначения перед вами создайте эту таблицу. Сначала вам нужно создать таблицу и вставить данные. Временные таблицы не сохраняются. Кроме того, у вашего последнего выбора отсутствует # –
его даже не временная таблица. Используемая инструкция заключается в создании таблицы permenant – Takarii
@Takarii Как постоянная глобальная таблица temp? Они видны всем и удаляются, когда все связанные с ними соединения закрыты. Но в этом случае я не вижу необходимости в глобальной таблице temp, просто используйте регулярную временную таблицу. –