Todos os produtos
Search
Central de documentação

:Operações comuns e descrição de compatibilidade

Última atualização: Jun 26, 2026

Este tópico aborda operações T-SQL comuns e limitações de compatibilidade conhecidas em instâncias do ApsaraDB RDS for PostgreSQL com o Babelfish ativado. Conecte-se à instância pela porta do Tabular Data Stream (TDS) antes de executar os exemplos.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância do ApsaraDB RDS for PostgreSQL com o Babelfish ativado

  • Um cliente que se conecta pela porta TDS (por exemplo, sqlcmd ou SQL Server Management Studio)

Operações comuns

Consultas de sistema

Operação

SQL

Consultar a versão do banco de dados

SELECT @@version;

Listar todos os bancos de dados

SELECT * FROM sys.databases;

Operações de banco de dados

Crie um banco de dados

CREATE DATABASE testdb;
Nota

No modo de migração

Single-DB

, apenas um banco de dados é permitido. Se já existir um banco de dados, a instrução

CREATE DATABASE

falhará.

Consultar um banco de dados

SELECT * FROM sys.databases WHERE name = 'testdb';

Alternar para um banco de dados

USE testdb
GO
SELECT db_name();

Exclua um banco de dados

DROP DATABASE testdb;

Operações de esquema

Crie um esquema

CREATE SCHEMA sch_demo;

Visualize um esquema

SELECT * FROM sys.schemas AS sch WHERE sch.name = 'sch_demo';

Crie uma tabela em um esquema

CREATE TABLE sch_demo.tb_demo(id int);

SELECT
    sch.name AS schema_name,
    tb.name AS table_name
FROM sys.tables AS tb
    INNER JOIN sys.schemas AS sch
    ON tb.schema_id = sch.schema_id
WHERE tb.name = 'tb_demo';

Exclua um esquema

Nota

Exclua todas as tabelas do esquema antes de excluir o próprio esquema.

DROP TABLE sch_demo.tb_demo;
GO

DROP SCHEMA sch_demo;
GO

Operações de tabela

Crie uma tabela

USE testdb
GO

CREATE TABLE dbo.tb_test(
    id int not null IDENTITY(1,1) PRIMARY KEY,
    name varchar(50))
GO

Consultar uma tabela

SELECT sche.name AS schema_name, tb.name AS table_name
FROM sys.tables AS tb
    INNER JOIN sys.schemas AS sche
    ON tb.schema_id = sche.schema_id
WHERE tb.name = 'tb_test';
GO

Adicionar uma coluna

ALTER TABLE dbo.tb_test ADD col_added bigint null;
GO

Modifique uma coluna

ALTER TABLE dbo.tb_test ALTER column col_added varchar(50);
GO

Exclua uma coluna

ALTER TABLE dbo.tb_test DROP column col_added;
GO

Crie um índice

CREATE INDEX ix_tb_test_name ON tb_test(name);
GO

Exclua um índice

DROP INDEX ix_tb_test_name ON tb_test;
GO

Operações de dados

INSERT

INSERT INTO dbo.tb_test
SELECT 'A' UNION ALL
SELECT 'B';
GO

Selecione

SELECT * FROM dbo.tb_test;

Atualize

UPDATE TOP(1) dbo.tb_test
SET name = 'A_updated';
GO

Exclua

DELETE TOP(1) FROM dbo.tb_test;
GO

SELECT * FROM dbo.tb_test;

Operações de procedimento armazenado

Crie um procedimento armazenado

USE testdb
GO

CREATE PROC dbo.UP_getDemoData(
    @id int
)
AS
BEGIN
    SET NOCOUNT ON
    SELECT *
    FROM dbo.tb_test
    WHERE id = @id
END;
GO

Visualize um procedimento armazenado

SELECT *
FROM sys.procedures
WHERE name = 'up_getdemodata';

Executar um procedimento armazenado

EXEC dbo.UP_getDemoData @id = 7;
GO

Exclua um procedimento armazenado

USE testdb
GO
DROP PROC dbo.UP_getDemoData
GO

Limitações de compatibilidade

Nota

Esta seção aborda cenários comuns de incompatibilidade. Para obter a lista completa, consulte a

documentação do Babelfish for PostgreSQL

.

As instruções T-SQL a seguir não têm suporte quando o Babelfish está ativado.

Operação sem suporte

Impacto

Solução alternativa

EXEC sp_help 'dbo.tb_test' — visualize esquema da tabela via sp_help

Erro

Nenhuma disponível via porta TDS

ALTER TABLE ... ALTER COLUMN ... NULL — defina como anulável ao modificar uma coluna

Erro

Omita a palavra-chave NULL; veja detalhes abaixo

ALTER INDEX ... REBUILD — recriar um índice

Erro

Exclua e recrie o índice; veja detalhes abaixo

ALTER PROC — modifique um procedimento armazenado

Erro

Exclua e recrie o procedimento armazenado; veja detalhes abaixo

SET showplan_xml ON — consultar um plano de execução

Erro

Nenhuma disponível via porta TDS

Visualize esquema da tabela via sp_help

O comando EXEC sp_help não tem suporte:

-- Not supported
EXEC sp_help 'dbo.tb_test'

Defina uma coluna como anulável ao modificá-la

Defina NULL explicitamente ao alterar uma coluna não tem suporte. Em vez disso, omita a palavra-chave NULL:

-- Not supported
ALTER TABLE dbo.tb_test ALTER column col_added varchar(50) null;
GO
-- Workaround: omit the NULL keyword
ALTER TABLE dbo.tb_test ALTER column col_added varchar(50);
GO

Recriar um índice

O comando ALTER INDEX ... REBUILD não tem suporte. Em vez disso, exclua e recrie o índice:

-- Not supported
ALTER INDEX ix_tb_test_name ON tb_test REBUILD;
GO
-- Workaround: drop then recreate
DROP INDEX ix_tb_test_name ON tb_test;
GO
CREATE INDEX ix_tb_test_name ON tb_test(name);
GO

Modifique um procedimento armazenado

O comando ALTER PROC não tem suporte. Em vez disso, exclua e recrie o procedimento armazenado:

-- Not supported
USE testdb
GO

ALTER PROC dbo.UP_getDemoData(
    @id int
)
AS
BEGIN
    SET NOCOUNT ON
    SELECT *
    FROM dbo.tb_test
    WHERE id >= @id
END;
GO
-- Workaround: drop then recreate
USE testdb
GO
DROP PROC dbo.UP_getDemoData
GO

CREATE PROC dbo.UP_getDemoData(
    @id int
)
AS
BEGIN
    SET NOCOUNT ON
    SELECT *
    FROM dbo.tb_test
    WHERE id >= @id
END;
GO

Consultar um plano de execução

O comando SET showplan_xml ON não tem suporte:

-- Not supported
SET showplan_xml ON
SELECT * from tb_test;