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 / dba / 问题

Perguntas[sql-server-2016](dba)

Martin Hope
Darrell
Asked: 2024-08-19 23:39:56 +0800 CST

Tentar anexar um banco de dados gera o erro 5 do sistema operacional: "5 (acesso negado.)"

  • 5

Tentando anexar um banco de dados (SQL 2016), com o seguinte comando:

CREATE DATABASE [MYDB]
ON (FILENAME = 'E:\DBA\Data\MYDB_Data.mdf')
FOR ATTACH;

Renderiza o seguinte erro:

Msg 5120, Level 16, State 101, Line 4
Unable to open the physical file "E:\DBA\Data\MYDB_Data.mdf". Operating system error 5: "5(Access is denied.)".
Msg 1802, Level 16, State 7, Line 4
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.

Outros sugeriram que as permissões podem ser o problema. Não vejo isso no meu caso:

PS E:\DBA\Data> icacls .
. NT SERVICE\MSSQLSERVER:(F)
  BUILTIN\Administrators:(F)
  CREATOR OWNER:(OI)(CI)(IO)(F)
  NT AUTHORITY\SYSTEM:(OI)(CI)(F)
  BUILTIN\Administrators:(OI)(CI)(F)
  NT SERVICE\MSSQLSERVER:(OI)(CI)(F)

Successfully processed 1 files; Failed processing 0 files

PS E:\DBA\Data> icacls .\MYDB_Data.mdf
.\MYDB_Data.mdf BUILTIN\Administrators:(F)
                NT AUTHORITY\SYSTEM:(F)
                NT SERVICE\MSSQLSERVER:(F)

Successfully processed 1 files; Failed processing 0 files

A conta de serviço é uma conta de domínio que está no grupo Administradores local. Existe alguma esperança para mim?

sql-server-2016
  • 2 respostas
  • 55 Views
Martin Hope
Jonathan Beck
Asked: 2024-04-04 23:42:52 +0800 CST

Tentando renumerar um campo para agrupar por outro

  • 5

Então eu tenho uma tabela que possui uma coluna chamada 'sequência', na verdade não é um tipo de dados de sequência, apenas um campo numérico que se traduz no modelo de objeto para mostrar os itens em uma determinada ordem. Em alguns casos, devido à manipulação do banco de dados, alguns registros terão uma sequência duplicada, resultando na incapacidade de reordenar na IU. Noutros casos, existem lacunas na sequenciação (o que não é um problema grave). O que pretendo fazer é renumerar esses campos numéricos começando em 1, mas é necessário agrupá-los pelo campo 'co' e depois pelo campo de sequência existente que você vê abaixo:

Esta é a consulta que executei para obter os resultados que você vê:

SELECT row_number() OVER (ORDER BY C.co, T.sequence) AS RowNum, C.co, T.sequence
FROM TNode T
INNER JOIN CInfo C ON C.guidfield = T.contextID
    WHERE T.nodeTypeID = '0EC43D28-EA1F-4FBE-BA50-06161AFAB382'
    AND T.parentNodeID ='A276DF06-4569-11D5-8052-00D0B7696EF9'
GROUP BY C.co, T.sequence

insira a descrição da imagem aqui

O que estou procurando alcançar é isso. Observe como a sequência é ligeiramente renumerada em registros onde não é um 1, 2, 3 direto... mas tem que começar de 1 novamente cada vez que um novo 'co' é encontrado, e então também ordenar pela sequência existente que é lá :

insira a descrição da imagem aqui

sql-server-2016
  • 2 respostas
  • 38 Views
Martin Hope
Chris Marriott
Asked: 2023-11-20 19:52:53 +0800 CST

Por que um SAVE TRAN fora de um loop CURSOR não funciona, mas dentro dele funciona?

  • 6

Por que, quando estou SAVE TRAN SavePointno local (A), recebo esses erros na terceira instância de cair no CATCH e além...

"Msg 6401, Nível 16, Estado 1... Não é possível reverter o SavePoint. Nenhuma transação ou ponto de salvamento com esse nome foi encontrado."

...mas não recebo esses erros quando SAVE TRAN SavePoint;estou no local (B)?

Só posso imaginar que tenha algo a ver com o contexto do loop do cursor, mas não entendo por quê.

-- Premable stuff, opening cursor, etc. here...

BEGIN TRAN

SAVE TRAN SavePoint;  -- (A)

WHILE @@FETCH_STATUS = 0
BEGIN;

  -- SAVE TRAN SavePoint;  -- (B)

  BEGIN TRY

    -- UPDATE statement here which may fail

    SAVE TRAN SavePoint;

  END TRY
  BEGIN CATCH

    ROLLBACK TRAN SavePoint;

  END CATCH;

  FETCH NEXT FROM Cursor INTO @X, @Y, @Z;

END;

-- CLOSE & DEALLOCATE stuff here

IF @DryRun = 1
  ROLLBACK TRAN;
ELSE
  COMMIT TRAN;
sql-server-2016
  • 1 respostas
  • 45 Views
Martin Hope
James
Asked: 2023-10-04 07:11:30 +0800 CST

DBeaver não reconhece variável declarada ao executar script SQL no SQL Server

  • 6

Estamos usando o DBeaver Community Edition (v23.2.0.202309041200) como um cliente conectado ao Microsoft SQL Server 2016 (v13.0.5101.9).

O problema ocorre ao executar as instruções SQL abaixo no DBeaver como um script.

declare @option as int = 2;

select @option;

A ação "Executar script SQL", ou pela tecla de atalho do DBeaver Alt+X, sempre falha na instrução de seleção, com mensagem de erro dizendo SQL Error [137] [S0002]: Must declare the scalar variable "@option"..

O erro não acontece se destacarmos as duas instruções SQL e seguirmos com a ação "Executar consulta SQL", ou pela tecla de atalho do DBeaver Ctrl+Enter.

O erro também não ocorre se usarmos o Microsoft SQL Server Management Studio, portanto, não acreditamos que o problema esteja relacionado ao SQL Server.

Nossa pergunta:

Existe alguma maneira de usar variáveis ​​declaradas no DBeaver ao executar um script SQL no MSSQL (Microsoft SQL Server)?

Agradecemos muito quaisquer dicas e sugestões.

sql-server-2016
  • 1 respostas
  • 23 Views
Martin Hope
QueryQuirk
Asked: 2023-10-02 21:57:49 +0800 CST

Compare duas tabelas para discrepâncias

  • 5

Estou tentando comparar duas tabelas em dois bancos de dados separados (mesma instância) para uma nova extração de dados. As tabelas têm cerca de 4 milhões de linhas e devido à forma como foram extraídas não estão na mesma ordem em cada tabela, pois são apenas tabelas de teste (não há PKs).

Eu tentei usar (selecionar * da tabela 1, exceto selecionar * da tabela 2) UNION ALL (selecionar * da tabela 2, exceto selecionar * da tabela 1), mas isso resulta em cerca de 10 milhões de linhas, portanto não está funcionando conforme o esperado.

Eu acho que os resultados deveriam ficar em torno de alguns milhares.

sql-server-2016
  • 2 respostas
  • 38 Views
Martin Hope
Artashes Khachatryan
Asked: 2023-08-24 21:02:51 +0800 CST

Compilação SQL\seg

  • 8

Eu tento carregar o teste de um procedimento armazenado de inserção simples

CREATE TABLE _test(ID BIGINT)

CREATE OR alter PROCEDURE dbo.test_sp
AS
BEGIN
    SET NOCOUNT ON;
    BEGIN
        INSERT INTO _test
        SELECT CAST(RAND() * 10000 AS BIGINT)
    END
END

Não quando executo este sp com a ferramenta SQLStress fico SQL Compilation\secigual aBatch Request\sec.

O fato interessante é que SQL Re-Compilations\secé 0.Contadores de desempenho

Ambos optimized for ad-hoce Forced parametrizationestão habilitados. A mesma imagem é mesmo se eu mudar meu sp para um simples SELECT 1. Qualquer ajuda será apreciada. Eu uso o Microsoft SQL Server 2016 (SP3) (KB5003279).

sql-server-2016
  • 1 respostas
  • 97 Views
Martin Hope
CaseyR
Asked: 2023-05-12 22:05:59 +0800 CST

Exagero ou boa aplicação de normalização para criar tabela pai apenas para associar uma coleção de filhos

  • 5

Eu tenho uma situação em que preciso manter um grupo de linhas de detalhes juntas, mas onde o "pai" não tem atributos adicionais e os "filhos" não têm propósito próprio. Comecei com a abordagem típica (para mim)

GroupOfSomething
    Id

SomethingDetail
    Id
    GroupOfSomethingId (FK)
    LookupToAnotherTable (FK)
    SomethingElse

Acima, Id é PK de digamos INT. Querendo saber se algo como o abaixo com apenas uma tabela em vez do relacionamento pai/filho é mais apropriado (GroupId pode ser um UNIQUEIDENTIFIER)

GroupOfSomethings
    GroupId
    Id
    LookupToAnotherTable (FK)
    SomethingElse

Em um esforço para esclarecer, isso é para algo como um sistema de contabilidade. São SomethingsFKs para contas. Haverá uma coleção dessas contas que os usuários vincularão a um ou mais fornecedores. No nível em que o fornecedor e a coleção de contas estão vinculados, há metadados adicionais. Então, esse relacionamento será o pai de mais uma coleção 1:muitos e de entidades adicionais 1:1 e 1:muitos relacionadas. Então fica algo como abaixo (com a estrutura PK/FK original, sem definir o que são todas as outras tabelas FK)

GroupOfAccounts
    Id (PK)

GroupOfAccountDetail
    Id (PK)
    GroupOfAccountId (FK)
    AccountId (FK)

VendorGroupOfAccountInfo
    Id (PK)
    VendorId (FK)
    GroupOfAccountId (FK)

VendorGroupOfAccountInfoAdditionalDetail
    Id (PK)
    VendorGroupOfAccountInfoId (FK)
    FeeStructureId (FK)
    StateId (FK)


VendorGroupOfAccountRates
    Id (PK)
    GroupOfAccountDetail (FK)
    RatePercentage
    EffectiveDate

...
sql-server-2016
  • 1 respostas
  • 26 Views
Martin Hope
youcantryreachingme
Asked: 2023-05-08 07:14:29 +0800 CST

Por que os arquivos de backup completo .bak consecutivos aumentam de tamanho?

  • 5

Primeiro, esta NÃO é uma duplicata desta pergunta . Nessa questão, a pessoa estava sobrescrevendo o arquivo todas as vezes e a solução é usar INIT ou NOINIT.

No meu caso, estamos gerando um nome de arquivo exclusivo com cada backup - um registro de data e hora é anexado ao nome do arquivo.

Temos um trabalho de agente que executa backups completos todas as noites para cerca de 20 bancos de dados. Por cerca de uma semana, 1 banco de dados parece estar aumentando de tamanho significativamente a cada noite.

Executamos um segundo trabalho de agente que executa backups de log a cada 15 minutos, mas para de ser executado entre 23h e 5h. Normalmente, logo pela manhã, os backups de log são grandes e, em seguida, seu tamanho é pequeno até que as pessoas comecem a trabalhar e, em seguida, eles têm vários tamanhos.

Tudo isso está funcionando sem problemas há anos.

Apenas um banco de dados dos 20 está mostrando esse problema - o backup completo de cada noite é significativamente maior do que na noite anterior.

Os backups do arquivo de log estão funcionando para este banco de dados e todos os outros.

Temos um grupo de disponibilidade com três réplicas. Duas são configuradas para failover uma para a outra e a terceira réplica é somente leitura para consultas pesadas, extrações de dados e relatórios. O console AG mostra marcas de seleção verdes em toda a página para todos os servidores.

O banco de dados em questão é o maior dos 20. O backup completo normal tem cerca de 25 GB. Ele aumentou lentamente da seguinte forma: 33, 35, 36, 41, 47, 54, 64, 73 GB.

Por outro lado, para todos os 14 backups anteriores a esse problema, o tamanho do arquivo era bastante estável em torno de 25 GB.

Acabei de pausar todos os backups de log para todos os bancos de dados e emitir um backup completo para o banco de dados afetado e esse último backup completo é de 76 GB.

sql-server-2016
  • 1 respostas
  • 37 Views
Martin Hope
kedar
Asked: 2023-04-24 18:58:10 +0800 CST

O script de solução de manutenção de Ola Hallengren não despeja o arquivo de log transacional no destino

  • 6

Em um dos sites de nossos clientes, implementei uma solução de alta disponibilidade (HA). No entanto, durante o processo de backup, encontrei um problema relacionado à configuração do ambiente de backup. Configuramos o ambiente de backup usando o script Maintenance Solution de Ola Hallengren. O ambiente incluía um nome de host do Windows Server e @@serverproperty que eram diferentes, o que fez com que o processo de backup fosse interrompido com esse erro

(Message 50000)  Source: https://sqlhelps.com [SQLSTATE 01000] (Message 50000)       [SQLSTATE 01000] (Message 50000)  The @@SERVERNAME does not match SERVERPROPERTY('ServerName'). See https://docs.microsoft.com/en-us/sql/database-engine/install-windows/rename-a-computer-that-hosts-a-stand-alone-instance-of-sql-server. [SQLSTATE 42000] (Error 50000)      [SQLSTATE 01000] (Message 50000)  Date and time: 2023-04-23 12:46:07 [SQLSTATE 01000] (Message 50000)       [SQLSTATE 01000] (Message 50000).  The step failed.

Para resolver esse problema, comentei o script T-SQL mostrado abaixo: --// Check @@SERVERNAME //-- --IF 'MainServer' <> CAST(SERVERPROPERTY('ServerName') AS nvarchar(max)) AND SERVERPROPERTY('IsHadrEnabled') = 1 --BEGIN -- INSERT INTO @Errors ([Message], Severity, [State]) -- SELECT 'The @@SERVERNAME does not match SERVERPROPERTY(''ServerName''). See ' + CASE WHEN SERVERPROPERTY('IsClustered') = 0 THEN 'https://docs.microsoft.com/en-us/sql/database-engine/install-windows/rename-a-computer-that-hosts-a-stand-alone-instance-of-sql-server' WHEN SERVERPROPERTY('IsClustered') = 1 THEN 'https://docs.microsoft.com/en-us/sql/sql-server/failover-clusters/install/rename-a-sql-server-failover-cluster-instance' END + '.', 16, 1 --END

Depois de comentar esse script, o processo de backup foi retomado normalmente e os backups completos e diferenciais foram feitos. No entanto, ao tentar fazer um backup de log transacional na réplica primária, o log de transação não foi despejado no destino.

Observe que todos esses backups são executados na relíquia Primária com preferências de backup para Primária

Eu apreciaria se você pudesse compartilhar seus pensamentos e ideias sobre como resolver esse problema. Obrigado.

sql-server-2016
  • 1 respostas
  • 39 Views
Martin Hope
sql-noob
Asked: 2023-04-11 06:15:53 +0800 CST

Por que minhas linhas estão sendo duplicadas e mostrando a soma incorreta?

  • 5

Eu tenho essas tabelas:

Payments

vendor   | VendorLocation | VendorName   | CheckDate | Amount | TransactionID | InvoiceID
---------------------------------------------------------------------
777      |                | Sony        | 5/1/2020   | 1.50   | 345           | ABC555
777      |                | Sony        | 5/1/2020   | 1.20   | 444           | ABC555
777      |  103           | Sony Music  | 5/1/2020   | 8.50   | 888           | XYZ888
777      |  105           | Sony VR     | 5/1/2020   | 2.50   | 789           | XYZ999
777      |  105           | Sony VR     | 5/1/2020   | 2.50   | 833           | XYZ111
Vendor Location

vendor   | VendorLocation | LocationType |Address 1   | State | City
---------------------------------------------------------------------
777      |  103           | X            |123 Ave      | CA    | Rivertown
777      |  105           | Z            |666 Ave      | CA    | Northtown
777      |  106           | Z            |888 Ave      | CA    | Southtown
Vendor Address

vendor   | VendorLocation | Address 1  | State | City
---------------------------------------------------------------------
777      |                | 1 Main St  | CA    | Rivertown
777      |  103           | 123 Ave    | CA    | Rivertown
777      |  105           | 666 Ave    | CA    | Northtown

O que eu quero que seja a saída:

Vendor Spending

vendor   | VendorLocation | LocationType  | VendorName | TotalTransactions|TotalSpend| Address 1
---------------------------------------------------------------------
777      |                | Z             | Sony       |  2                | $2.70   | 1 Main St
777      |  105           | Z             | Sony VR    |  2                | $5.00   | 666 Ave

No entanto, estou obtendo o resultado abaixo, que é duplicado e o valor totalSpend incorreto:

Vendor Spending

vendor   | VendorLocation | LocationType  | VendorName | TotalTransactions|TotalSpend| Address 1
---------------------------------------------------------------------
777      |                | Z             | Sony       |  2                | $2.70   | 1 Main St
777      |  105           | Z             | Sony VR    |  2                | $7.70   | 1 Main St


This is query I have:

select distinct
ap.vendor Vendor_ID
,vl.VendorLocation
,vl.LocationType
,ap.VendorName
,count(ap.transactionID) as TotalTransactions
,sum( ap.amount) as TotalSpend
,ad.Address1
from payments ap
join  VendorLocation vl
on ( (vl.vendor=ap.vendor and vl.VendorLocation=ap.VendorLocation)
or (vl.vendor=ap.vendor and vl.VendorLocation='')
or (vl.vendor=ap.vendor and ap.VendorLocation='')
and vl.LocationType in ('Z')
) join VENDORADDRESS ad
on (ad.VENDOR=ap.vendor AND ad.VendorLocation=ap.VendorLocation)
where
vl.LocationType in ('Z') and
ap.CheckDate>='4/1/2022'
group by
vl.vendor
,vl.LOCATION_CODE
,vl.LocationType
,ap.VendorName
,ad.Address1
sql-server-2016
  • 1 respostas
  • 24 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