Я пытаюсь скопировать определенные данные (например, где состояние = «TX») из таблицы в одной базе данных на удаленном сервере в другую базу данных на моем сервере. Ошибка, которую я получаю:
Неверный синтаксис рядом с 'SELECT'. Ожидается EDGE_TYPE или FILETABLE" сразу после ключевого слова "AS".
Таблица, из которой я копирую, огромна, и у меня нет места на сервере, чтобы скопировать всю таблицу, и она мне никогда не понадобится. Я нашел сайты, которые показывают, как это сделать, но по какой-то причине они никогда не работают в SQL Server, хотя они работают в онлайн-запросах sql (школы w3: https://www.w3schools.com/sql/sql_create_table.asp #:~:text=the%20old%20table.-,Syntax,-CREATE%20TABLE%20new_table_name).
Вот мой код более или менее:
CREATE TABLE [DB1].dbo.PartialData AS
SELECT [col1]
,[col2]
,[col3]
,[col4]
FROM [DB2].[dbo].[FullData]
WHERE [DB2].[dbo].[FullData].State = 'TX';
2 ответа
В SQL Server используйте select.. into...
SELECT col1
,col2
,col3
,col4
INTO DB1.dbo.PartialData
FROM DB2.dbo.FullData
WHERE State = 'TX';
Сложность будет заключаться в настройке связанных серверы.
Если вы связали сервер, на котором размещается db1, с сервером для db2, вы бы запросили, используя имя из 4 частей:
insert [db2].[dbo].[PartialData]
select * from [server1].[db1].[dbo].[fullData]
Вы бы вставили имя из 4 частей, если бы вы настроили связанный сервер в противоположном направлении.
insert [server2].[db2].[dbo].[PartialData]
select * from [db1].[dbo].[fullData]
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.