Como usar a instrução sqlserver para copiar uma tabela incluindo banco de dados cruzado

Como copiar uma tabela com a instrução sqlserver

1, copie a estrutura da tabela e os dados para a nova tabela
CREATE TABLE nova tabela SELECT * FROM the old table
Este método irá copiar todo o conteúdo da oldtable, é claro, podemos usar delete from newtable; para excluir.
Porém, uma das piores partes desse método é que a nova tabela não possui os atributos de chave primária e Extra (auto_incremento) da tabela antiga. Você precisa usar "alter" para adicioná-lo sozinho, e é fácil cometer erros.

2. Copie apenas a estrutura da tabela para a nova tabela
CREATE TABLE nova tabela SELECT * FROM tabela antiga WHERE 1 = 2
ou CREATE TABLE nova tabela LIKE tabela antiga

3. Copie os dados da tabela antiga para a nova tabela (assumindo que as duas tabelas tenham a mesma estrutura)
INSERT INTO the new table SELECT * FROM the old table

4. Copie os dados da tabela antiga para a nova tabela (assumindo que as duas tabelas têm estruturas diferentes)
INSERT INTO a nova tabela (campo 1, campo 2, ...) SELECT campo 1, campo 2, ... FROM a velha mesa

5. Você pode copiar a estrutura da Tabela 1 para a Tabela 2
SELECIONE * PARA A Tabela 2 DA Tabela 1 ONDE 1 = 2

6. Você pode copiar todo o conteúdo da Tabela 1 para a Tabela 2
SELECT * INTO Tabela 2 DA Tabela 1

7, mostra criar tabela velha tabela;
isso irá listar os comandos de criação da tabela antiga. Precisamos apenas copiar o comando e alterar o nome da tabela para criar uma tabela idêntica

A biblioteca da versão alta do Scene é sincronizada com a biblioteca da
versão baixa usando a biblioteca da versão baixa

- Criar um servidor vinculado
exec sp_addlinkedserver'ITSV ',' ',' SQLOLEDB ','. \ MSSQLSERVER2014 '
exec sp_addlinkedsrvlogin'ITSV', 'false', null, 'sa', '1password'

- Exemplo de consulta,
selecione os 10 melhores * de ITSV. [Spider]. [Dbo] .A

- Importar exemplo
select * para [SpiderWorld] de ITSV. [520musSpider]. [Dbo] .A

Métodos de cópia de dados de tabela entre bancos de dados diferentes:

Quando a tabela de destino existe:

inserir no banco de dados de destino ... selecionar tabela * do banco de dados de origem ... tabela

Quando a tabela de destino não existe:

selecione * no banco de dados de destino ... tabela do banco de dados de origem ... tabela

--Se entre diferentes SQL:

inserir em openrowset ('sqloledb', 'nome do servidor de destino'; 'sa'; '', banco de dados de destino.dbo.table)
selecionar * do banco de dados de origem ... tabela


-Crie um servidor vinculado exec sp_addlinkedserver 'ITSV', '', 'SQLOLEDB', 'nome do servidor remoto ou endereço IP'
exec sp_addlinkedsrvlogin 'ITSV', 'false', null, 'nome do usuário', 'senha'


-Query exemplo SELECT * FROM ITSV. Nome do banco de dados. Dbo. Nome da tabela


-Importar exemplo select * para a tabela de ITSV. Nome do banco de dados. Dbo. Nome da tabela


- Exclua o servidor vinculado quando ele não for mais usado no futuro exec sp_dropserver 'ITSV', 'droplogins'

- Conecte-se a dados de rede remota / local (openrowset / openquery / opendatasource)
- 1. openrowset


-Query exemplo SELECT * FROM OPENROWSET ( 'SQLOLEDB', 'sql nome do servidor'; 'nome de usuário'; 'password', banco de dados nome name.dbo.table)

- o custo da
seleção de base bruta * na tabela de openrowset ('SQLOLEDB', ' sql server name'; 'username'; 'password', .dbo database table name.)


-Importar a tabela local para a tabela remota inserir openrowset ('SQLOLEDB', 'sql server name'; 'user name'; 'password', database name.dbo.table name)
select * from local table

-Atualizar a
atualização da tabela local b
definir b. Coluna A = a. Coluna A
do openrowset ('SQLOLEDB', 'nome do servidor sql'; 'nome do usuário'; 'senha', nome do banco de dados.dbo.nome da tabela) como um interno junte a tabela local b
em a.column1 = b.column1

- O uso do Openquery precisa criar uma conexão

- Primeiro crie uma conexão para criar um servidor vinculado
exec sp_addlinkedserver 'ITSV', '', 'SQLOLEDB', 'nome do servidor remoto ou endereço IP'
-
Seleção de consulta *
FROM openquery (ITSV, 'SELECT * FROM database.dbo.table name ')
- Importar a tabela local para a tabela remota
inserir openquery (ITSV,' SELECT * FROM database.dbo.table name ')
select * from local table
- Atualizar a atualização da tabela local
b
conjunto b. Coluna B = a. Coluna B
FROM openquery (ITSV, 'SELECT * FROM database.dbo.table name') como uma
tabela local de junção interna b em a. Coluna A = b. Coluna A

- 3. opendatasource / openrowset
SELECT *
FROM opendatasource ('SQLOLEDB', 'Data Source = ip / ServerName; User ID = login name; Password = password') .test.dbo.roy_ta
- Importar a tabela local para a
inserção da tabela remota opendatasource ('SQLOLEDB', 'Data Source = ip / ServerName; User ID = login name; Password = password') .database.dbo.table name
select * from

Nota: Ad Hoc não pode ser ativado em alguns casos, use a seguinte instrução para habilitar

启用Ad Hoc consultas distribuídas:
sp_configure exec 'Mostrar opções avançadas', 1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries', 1
reconfigure
使用完成后,关闭Ad Hoc consultas distribuídas:
exec sp_configure 'Ad Hoc consultas distribuídas', 0
reconfigure
sp_configure exec 'mostrar opções avançadas', 0
reconfigurar


Bem, se o acima exposto é irritante, aqui está um exemplo mais fácil de entender:

Exec sp_droplinkedsrvlogin DBVIP, Null
Exec sp_dropserver DBVIP

EXEC sp_addlinkedserver
@ server = 'DBVIP', - o alias do servidor que está sendo acessado
@ srvproduct = '',
@ provider = 'SQLOLEDB',
@ datasrc = 'Server2'-o servidor a ser acessado

Sp_addlinkedsrvlogin EXEC
'DBVIP', - servidor alias a ser acessado
'false',
NULL,
'SA', - conta
'thankyoubobby' - senha

Selecione * em DBVIP.pubs.dbo.orders

/ ORACLE
Exec sp_droplinkedsrvlogin demo, Null
Exec sp_dropserver demo
go

EXEC sp_addlinkedserver
@server = 'demo',
@ srvproduct = 'Oracle',
@ provider = 'MSDAORA',
@ datasrc = 'ServiceName'

EXEC sp_addlinkedsrvlogin
'demo',
'false',
NULL,
'userid',
'password'
go

SELECT * FROM OPENQUERY (demo, 'select * from tbdemo')

UPDATE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE id = 101')
SET name = 'hello';

INSERT OPENQUERY (demo, 'SELECT id FROM tbdemo')
VALUES ('hello');

DELETE OPENQUERY (demo, 'SELECT id FROM tbdemo WHERE name =' 'hello' '');

------------------------------------------- Exemplo específico ----- -------------------------------------------------- -----

se existir (selecione 1 em master.dbo.sysservers onde srvname = 'test')
begin
exec sp_droplinkedsrvlogin 'test', 'sa'
exec sp_dropserver 'test'
end


- Estabeleça uma conexão com o servidor EXEC sp_addlinkedserver'test ',' ms ',' SQLOLEDB ',' 192.168.1.99 '

exec sp_addlinkedsrvlogin 'test', 'false', null, 'sa', ''
select * from test.db_film.dbo.T_film
go

se existir (selecione 1 em master.dbo.sysservers onde srvname = 'test')
begin
exec sp_droplinkedsrvlogin 'test', 'sa'
exec sp_dropserver 'test'
end

vai

Método dois:

1. Crie um novo servidor de conexão e conecte-se ao endereço IP (ou nome da máquina) do servidor que deseja importar

2. Clique em Segurança, use este contexto de segurança para estabelecer uma conexão e insira o nome de usuário e a senha do servidor de banco de dados

3. Selecione o banco de dados a ser exportado e use o seguinte sql para exportar os dados:

selecione * para laobao de [10.180.116.121] .ynpdeicp.dbo.LaoBao

Explicação Sql:

selecione o campo a ser importado para a tabela de dados a ser importado de [endereço IP]. nome do banco de dados.dbo. nome da tabela de dados

Dakeng observa o índice de incremento automático da chave primária relacionado
1. Crie uma nova tabela de dados com um id de campo e defina o id como a chave primária

criar tabela tb (id int, restrição pkid chave primária (id))
criar tabela tb (id int chave primária)

2. Crie uma nova tabela de dados com um ID de campo, defina o ID como a chave primária e numere automaticamente

criar tabela tb (id int identidade (1,1), restrição pkid chave primária (id))
criar tabela tb (id int identidade (1,1) chave primária)

3. Uma tabela de dados foi construída, há um campo id nela, e o id é definido como a chave primária

alterar tabela tb alterar id da coluna int não nulo
alterar tabela tb adicionar restrição pkid chave primária (id)

4. Exclua a chave primária

Declare @Pk varChar (100);
Selecione @ Pk = Name de sysobjects onde Parent_Obj = OBJECT_ID ('tb') e xtype = 'PK';
if @Pk não é
exec nulo ('Alterar tabela tb Drop' + @Pk)

Acho que você gosta

Origin blog.csdn.net/cao919/article/details/109577625
Recomendado
Clasificación