AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-10769

Kermit's questions

Martin Hope
Kermit
Asked: 2013-10-31 09:01:19 +0800 CST

criar servidor vinculado a vertica

  • 4

Estou tentando criar um servidor vinculado do SQL Server para o Vertica para extrair alguns dados. Eu tentei usar o seguinte ODBC encontrado aqui .

O código que estou tentando atualmente é:

EXEC dbo.sp_addlinkedserver 
@server = N'VERTICA', 
@srvproduct=N'', 
-- SQL Server driver
@provider=N'MSDASQL',
-- Connection string
@provstr=N'Driver=Vertica ODBC Driver 4.1;
    Servername=Vertica;
    Port=5433;
    Database=Vertica;
    UserName=user;
    Password=pass'

A mensagem de erro que recebo é:

O provedor OLE DB "MSDASQL" para o servidor vinculado "VERTICA" retornou a mensagem "[Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado".

vertica sql-server-2012
  • 1 respostas
  • 2711 Views
Martin Hope
Kermit
Asked: 2013-09-11 14:50:12 +0800 CST

se o bloco falhar ao criar tabela temporária em um procedimento

  • 3

Estou tentando fazer isso em um procedimento:

DECLARE @a bit = 1;
BEGIN
    SELECT * INTO #aTemp FROM OPENROWSET( ... );

    IF @a = 0
    BEGIN
        SELECT ... INTO #bTemp FROM #aTemp;
    END
    ELSE
    BEGIN
        SELECT ... INTO #bTemp FROM #aTemp;
    END
END

Eu recebo o erro:

Msg 2714, Level 16, State 1, Line 10
There is already an object named '#bTemp' in the database.

Por que isso está acontecendo e há uma solução alternativa?

Atualizar

Tentei adicionar uma DROPdeclaração conforme sugerido aqui , mas ainda não funcionou:

DECLARE @a bit = 1;
BEGIN
    SELECT * INTO #aTemp FROM OPENROWSET( ... );

    IF @a = 0
    BEGIN
        IF OBJECT_ID('[tempdb]..#bTemp') IS NOT NULL
        BEGIN
            DROP TABLE #bTemp;
        END

        SELECT ... INTO #bTemp FROM #aTemp;
    END
    ELSE
    BEGIN
        IF OBJECT_ID('[tempdb]..#bTemp') IS NOT NULL
        BEGIN
            DROP TABLE #bTemp;
        END

        SELECT ... INTO #bTemp FROM #aTemp;
    END
END
sql-server t-sql
  • 3 respostas
  • 5020 Views
Martin Hope
Kermit
Asked: 2013-08-28 10:57:12 +0800 CST

Nome de arquivo dinâmico para importação de arquivo

  • 3

Estou tentando descobrir uma maneira de passar um nome de arquivo para um procedimento armazenado que pode importar um arquivo. No entanto, após configurar o SQL dinamicamente, o objeto não pode ser encontrado.

DECLARE @fileName varchar(200), 
    @sql varchar(max);

SET @fileName = 'C:\file.csv';

SET @sql = 'SELECT *
    INTO #import
    FROM OPENROWSET(BULK ''' + @fileName + ''',
    FORMATFILE=''C:\format.xml'',
    FIRSTROW = 2) AS a';

EXEC(@sql);

SELECT * INTO #stage
FROM #import;

O resultado

(27823 row(s) affected)
Msg 208, Level 16, State 0, Line 29
Invalid object name '#tmtImport'.
sql-server sql-server-2008-r2
  • 1 respostas
  • 3379 Views
Martin Hope
Kermit
Asked: 2013-07-17 15:56:40 +0800 CST

função trava com operação de caso nulo

  • 9

Criei uma função que aceita data inicial e final, sendo a data final opcional. Em seguida, escrevi um CASEno filtro para usar a data de início se nenhuma data de término for passada.

CASE WHEN @dateEnd IS NULL
    THEN @dateStart
    ELSE @dateEnd
END

Quando eu chamo a função para o mês mais recente dos dados:

SELECT * FROM theFunction ('2013-06-01', NULL)

... a consulta trava. Se eu especificar a data final:

SELECT * FROM theFunction ('2013-06-01', '2013-06-01')

... o resultado é retornado normalmente. Tirei o código da função e executei-o bem dentro de uma janela de consulta. Também não consigo duplicar o problema no violino. Uma consulta como:

SELECT * FROM theFunction ('2013-04-01', '2013-06-01')

... também funciona bem.

Existe alguma coisa na consulta (abaixo) que pode estar causando o travamento da função quando um NULLé passado para a data final?

SQL Fiddle

  • Plano de execução paraSELECT * FROM theFunction ('2013-06-01', '2013-06-01')
  • Plano estimado paraSELECT * FROM theFunction ('2013-06-01', NULL)
sql-server sql-server-2008-r2
  • 2 respostas
  • 1273 Views
Martin Hope
Kermit
Asked: 2013-04-18 11:12:38 +0800 CST

Prática recomendada para copiar tabelas de servidor para servidor

  • 5

Não sendo um DBA e não tendo privilégios de administrador de sistema para fazer um backup/restauração, o seguinte seria uma boa solução para copiar um conjunto de tabelas? (Eu tenho um servidor vinculado de serverApara serverB)

copyTables

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[copyTables]
AS
-- NOCOUNT ON added to prevent extra result sets from interfering
-- with SELECT statements. XACT_ABORT ON to terminate the transaction
-- and rollback if a run-time error occurs.
SET NOCOUNT, XACT_ABORT ON

BEGIN
    DECLARE @serverName varchar(50), @dbName varchar(50), @schemaName varchar(50)

    SET @serverName = QUOTENAME('serverB')
    SET @dbName = QUOTENAME('db')
    SET @schemaName = QUOTENAME('dbo')

    BEGIN TRY
        BEGIN TRANSACTION

        EXEC [dbo].[copyTable] @serverName, @dbName, @schemaName, 'tbl1', 'copyLog'
        EXEC [dbo].[copyTable] @serverName, @dbName, @schemaName, 'tbl2', 'copyLog'
        EXEC [dbo].[copyTable] @serverName, @dbName, @schemaName, 'tbl3', 'copyLog'
        ...

        COMMIT TRANSACTION
    END TRY
    BEGIN CATCH
        -- Insert error into log table

        ROLLBACK
    END CATCH
END
GO

copyTable

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[copyTable]
    @serverName varchar(50),
    @dbName varchar(50),
    @schemaName varchar(50),
    @tableName varchar(50),
    @logTableName varchar(50)
AS
-- NOCOUNT ON added to prevent extra result sets from interfering
-- with SELECT statements. XACT_ABORT ON to terminate the transaction
-- and rollback if a run-time error occurs.
SET NOCOUNT, XACT_ABORT ON

BEGIN
    DECLARE @localFullName varchar(200), @localShortName varchar(150),
        @foreignFullName varchar(200), @logShortName varchar(150);

    SET @localFullName = QUOTENAME(@dbName) + '.' + QUOTENAME(@schemaName)
        + '.' + QUOTENAME(@tableName);
    SET @localShortName = QUOTENAME(@schemaName) + '.' + QUOTENAME(@tableName);
    SET @foreignFullName = QUOTENAME(@serverName) + '.' + QUOTENAME(@dbName)
        + '.' + QUOTENAME(@schemaName) + '.' + QUOTENAME(@tableName);
    SET @logShortName = QUOTENAME(@logTableName) + '.' + QUOTENAME(@schemaName)
        + '.' + QUOTENAME(@tableName);

    IF EXISTS 
    (
        SELECT * 
        FROM sys.objects 
        WHERE object_id = OBJECT_ID(@localShortName) 
                AND type in (N'U')
    )
    BEGIN
        DROP TABLE @localShortName;
        SELECT * 
            INTO @localFullName 
            FROM @foreignFullName;

        INSERT INTO @logShortName (stamp, [message]) 
        VALUES 
            (
                    GETDATE(), 
                    'Table ' + @foreignFullName + ' was copied'
            );
    END
END
sql-server stored-procedures
  • 1 respostas
  • 206 Views
Martin Hope
Kermit
Asked: 2012-11-03 06:23:17 +0800 CST

Escrevendo um documento de análise de banco de dados

  • 4

Fui incumbido de escrever uma análise de um banco de dados que atualmente é usado em pequena escala. A intenção do documento é mostrar ao negócio (bem como tecnicamente) que o banco de dados pode escalar para dar suporte a outras divisões de negócios. Tenho lutado para encontrar padrões de documentação de banco de dados na web. Parece que a maioria dos bancos de dados não está documentada; muito menos ter um diagrama ER básico.

Estou mais especificamente preocupado com o lado técnico e este é o esboço que criei:

  • Requisitos não Funcionais
    • Necessidades de armazenamento
    • Confiabilidade do servidor
  • Design de esquema e normalização
    • Integridade Relacional
    • Integridade do domínio
      • Tipos de dados
      • ( FOREIGN KEY, DEFAULT, NOT NULLrestrições)
    • Integridade referencial
      • Referências pai/filho
  • Design de consulta

Existe algum aspecto que estou perdendo ou no qual devo me concentrar mais?

database-design documentation
  • 1 respostas
  • 964 Views
Martin Hope
Kermit
Asked: 2012-08-17 12:03:55 +0800 CST

Solução alternativa para importar dados

  • 6

Estou tentando importar dados para um SQL Server. Posso importar por meio do assistente Importar e exportar dados. Não consigo importar da minha máquina usando BULK IMPORTou OPENROWSETporque o arquivo não está na máquina do servidor. Como o assistente do IED insere dados em seu banco de dados de destino? Vai linha por linha?

Existem outras soluções possíveis para importar dados da minha máquina?

sql-server-2008 import
  • 2 respostas
  • 230 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve