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

Perguntas[sql-server](coding)

Martin Hope
Stevoisiak
Asked: 2025-04-24 04:10:29 +0800 CST

Quais são os valores padrão do DATEFIRST para idiomas que não sejam o inglês dos EUA no SQL Server?

  • 5

O SQL Server tem uma DATEFIRSTconfiguração que determina o primeiro dia da semana para cálculos de data.

SELECT DATENAME(weekday, '2025-04-23') AS WeekdayName  -- Wednesday

SET DATEFIRST 7  -- Sunday
SELECT DATEPART(weekday, '2025-04-23') AS WeekdayNumber  -- 4

SET DATEFIRST 1  -- Monday
SELECT DATEPART(weekday, '2025-04-23') AS WeekdayNumber  -- 3

De acordo com a documentação da Microsoft , o valor padrão de DATEFIRSTem inglês dos EUA é 7 (domingo).

Documentação da Microsoft para valores DATEFIRST

Se o SQL Server estiver configurado com um idioma diferente do inglês ou dos EUA, o valor padrão será DATEFIRSTdiferente de 7? Em caso afirmativo, como verifico os valores padrão para diferentes idiomas?

sql-server
  • 1 respostas
  • 67 Views
Martin Hope
Eitan
Asked: 2025-04-20 20:21:33 +0800 CST

Chamar procedimento armazenado em sessão separada no SQL Server

  • 5

Tentei chamar um procedimento armazenado do SQL Server em outra sessão.

Este é meu código:

CREATE PROCEDURE [dbo].[CI_AdHoc_PrepareJob]
(
    @JobName NVARCHAR(50),
    @StepName NVARCHAR(50),
    @Value NVARCHAR(MAX)
)
AS
BEGIN
    BEGIN TRAN;

    DECLARE @MyStepName SYSNAME = @StepName + '_' + CAST(NEWID() AS NVARCHAR(36));
    DECLARE @MyCmd NVARCHAR(MAX) = 'EXEC CI_AdHoc_SP @id=1, @value=''' + @Value + '''';

    -- Call helper to create the job step immediately
  EXEC dbo.sp_add_jobstep
    @jobname = @JobName,
    @stepname = @myStepName,
    @subsystem = N'TSQL',
    @command = @MyCmd,
    @on_success_action = 1, -- Quit with success
    @on_fail_action = 2, -- Quit with failure
    @DatabaseName = 'MyDB';


    -- Now start the job
    EXEC msdb.dbo.sp_start_job 
        @job_name = @JobName,
        @step_name = @MyStepName;

    -- Get Job ID (optional)
    DECLARE @JobId UNIQUEIDENTIFIER;
    SELECT @JobId = job_id FROM msdb.dbo.sysjobs WHERE name = @JobName;

    ROLLBACK TRAN;
END

Quero que, mesmo que eu faça um rollback no final, o procedimento armazenado seja executado (sem que o rollback interfira. Ele é usado para algumas atualizações no banco de dados, por exemplo).

Como posso fazer isso?

Executar trabalho com parâmetro é uma boa solução.

(Pode ser que não haja problema se não houver parâmetros para o procedimento armazenado, mas preciso passar parâmetros, então preciso chamar sp_add_jobstepdentro da transação. Não encontrei outra maneira de fazer isso).

sql-server
  • 1 respostas
  • 73 Views
Martin Hope
Cyclone
Asked: 2025-04-09 04:53:22 +0800 CST

Usando o SQL Server, procurando obter a sub-rede do endereço IP e da máscara de sub-rede armazenados no banco de dados

  • 5

Utilizamos sub-redes para geolocalização de ativos de computador. Nos dados mais atualizados, não temos sub-redes, como a IE 10.81.66.0, apenas o endereço IP e a máscara de sub-rede, como 255.255.255.0.

Existe uma maneira de usar SQL para pegar uma coluna de endereços IP como 10.81.66.99, juntamente com a máscara de sub-rede 255.255.255.0, e convertê-los em sub-redes como a 10.81.66.0 acima? Sei que isso é muito mais fácil com uma máscara de 24 bits, mas preciso que funcione para qualquer máscara de sub-rede.

Não tenho certeza se você gostaria de converter o VARCHARendereço IP em um mapa binário de 1s e 0s para fazer a comparação bit a bit entre o endereço IP e a máscara de sub-rede, mantendo os 1s em comum e, em seguida, convertê-los de volta de alguma forma. Qualquer ajuda seria muito apreciada, pois isso me dá dor de cabeça toda vez que tento perder tempo tentando descobrir.

Versão do SQL: Microsoft SQL Server 2019 (KB5021124) - 15.0.4280.7 (X64) 23 de janeiro de 2023 12:37:13

Consulta base:

SELECIONE Nome do Computador, IP, Máscara de Sub-Rede DE Origem IP

Saída de exemplo:

Computador99, 10.81.66.99, 255.255.255.0

Exemplo de saída desejada:

Computador99, 10.81.66.99, 255.255.255.0, 10.81.66.0

sql-server
  • 1 respostas
  • 31 Views
Martin Hope
Jack Morris
Asked: 2025-04-08 23:49:58 +0800 CST

Concatenar o primeiro e o último número de linha sequencial com um hífen

  • 5

Nossa tabela armazena os números das linhas de um pedido. É possível concatená-los em uma string, onde a primeira e a última linhas sequenciais são separadas por um hífen e as linhas não sequenciais são separadas por uma vírgula? Alguns de nossos pedidos podem ter mais de 100 linhas do mesmo item e, em vez de listar cada linha separadamente, gostaríamos de condensá-las em "Linhas: 1-100" ou "Linhas: 1-20, 25, 30-50, 75-100", etc.

Fonte

Linha Item
1 Maçã
2 Maçã
3 Maçã
4 Laranja
5 Maçã
6 Laranja
7 Maçã
8 Maçã
9 Laranja
10 Laranja

Consulta atual

Usando STRING_AGG, consegui agrupá-los por linhas individuais, mas não consigo descobrir como identificar as partes sequenciais e extrair seus primeiros/últimos valores para o hífen. LAG e LEAD podem ser usados ​​em conjunto com STRING_AGG?

SELECT
    CONCAT('Lines: ', STRING_AGG(Line, ', ') WITHIN GROUP (ORDER BY Line)) AS [Line],
    Item
FROM Table
GROUP BY Item

Resultado atual

Linha Item
Linhas: 1, 2, 3, 5, 7, 8 Maçã
Linhas: 4, 6, 9, 10 Laranja

Resultado desejado

Linha Item
Linhas: 1-3, 5, 7-8 Maçã
Linhas: 4, 6, 9-10 Laranja
sql-server
  • 1 respostas
  • 52 Views
Martin Hope
SK-USA
Asked: 2025-04-05 04:41:57 +0800 CST

SQL Server RegEx [duplicado]

  • 4
Esta pergunta já tem respostas aqui :
Usando RegEx no SQL Server (10 respostas)
Fechado ontem .

Preciso corresponder a uma string contendo pelo menos 6 dígitos. Estou tendo um problema com isso.

Este exemplo ajudará:

IF OBJECT_iD('tempdb..#Sample') IS NOT NULL DROP TABLE #Sample
CREATE TABLE #Sample(Field VARCHAR(50))
GO

INSERT INTO #Sample (Field) VALUES ('ABC123 ')
INSERT INTO #Sample (Field) VALUES ('ABC1')
INSERT INTO #Sample (Field) VALUES ('ABC1')
INSERT INTO #Sample (Field) VALUES ('ABC123.')
INSERT INTO #Sample (Field) VALUES ('ABC123&')
INSERT INTO #Sample (Field) VALUES ('ABC123&')
INSERT INTO #Sample (Field) VALUES ('ABC1234567&')
INSERT INTO #Sample (Field) VALUES ('ABC12345&')
INSERT INTO #Sample (Field) VALUES ('DataMigrationLog_Bak3')

DECLARE @PAT VARCHAR(500) 

SELECT '%[^a-z0-9 .]%' PAT, * FROM #Sample WHERE Field LIKE '%[^a-z0-9 .]%'

SELECT @PAT = '%[(\d{6})]%'
SELECT @PAT PATVAR, * FROM #Sample WHERE Field LIKE @PAT

SELECT '%[(\d{3})]%' PAT, * FROM #Sample WHERE Field LIKE '%[(\d{3})]%'

Ao usar este padrão - %[(\d{6})]%Ele dá duas linhas

ABC1234567&
DataMigrationLog_Bak3

O que estou perdendo aqui?

sql-server
  • 1 respostas
  • 61 Views
Martin Hope
Manngo
Asked: 2025-04-04 18:39:06 +0800 CST

Logins e usuários do SQL Server

  • 5

Quero criar uma coleção de bancos de dados e usuários para que cada usuário tenha acesso a apenas um banco de dados.

A pergunta do SO Diferença entre um usuário e um login no SQL Server discute logins e usuários.

Entendo que, geralmente, um login é para o servidor e um usuário é para o banco de dados. No entanto, não consigo ver como isso funciona, pois a senha é definida para o login, não para o usuário.

Isso significa que preciso de um login diferente para cada banco de dados ou existe uma maneira de fazer isso com um único login com vários usuários, cada um com sua própria senha?

Quero fazer isso em SQL, não na interface gráfica, pois preciso criar um script para isso.

sql-server
  • 2 respostas
  • 59 Views
Martin Hope
Ganesh Mohane
Asked: 2025-04-04 02:38:53 +0800 CST

Minha chave primária de IDENTIDADE ficará sem efeito em uma grande tabela de rastreamento de localização?

  • 5

Estou trabalhando em um sistema de rastreamento de localização usando SQL Server, e armazeno atualizações de localização para funcionários a cada poucos segundos. Aqui está minha tabela:

CREATE TABLE tblAppLocation 
(
    id INT PRIMARY KEY IDENTITY(1,1),
    inEmpId INT FOREIGN KEY REFERENCES tblMstEmployee(inEmpId),
    latitude FLOAT NOT NULL,
    longitude FLOAT NOT NULL,
    timestamp DATETIME NOT NULL DEFAULT GETDATE()
);

Nós monitoramos mais de 300 funcionários, inserindo dados 12 horas por dia. Com o tempo, o tamanho da tabela crescerá significativamente.

Minhas preocupações:

  • Será que os id INT IDENTITY(1,1)valores acabarão? Devo mudar para BIGINT?

  • Há riscos de desempenho com inserções frequentes? Indexação ou particionamento ajudariam?

  • Quais são as práticas recomendadas para gerenciar grandes dados de rastreamento de localização no SQL Server?

Quaisquer informações sobre otimização de banco de dados e soluções de armazenamento de longo prazo seriam apreciadas.

sql-server
  • 1 respostas
  • 22 Views
Martin Hope
Cerbero
Asked: 2025-04-02 21:35:40 +0800 CST

Erro ao renomear uma coluna no SQL Server com sp_rename no Microsoft Fabric

  • 5

Estou encontrando um erro ao tentar renomear uma coluna no SQL Server usando a seguinte consulta:

EXEC sp_rename 'Gold.dbo.TEST_TABLE.OldTestColumn', 'NewTestColumn', 'COLUMN';

Recebo a seguinte mensagem de erro:

Mensagem 15600, Nível 16, Estado 30, Linha 897
Um parâmetro ou opção inválida foi especificada para o procedimento 'sys.sp_rename'.

Msg 24528, Nível 0, Estado 1, Linha 1
ID da instrução: {9626E836-C810-48E3-A9A7-D2BBD641B028}
3:31:04 PM Tempo de execução do SQL Server: 00:00:00.112 | Duração total: 00:00:01.191

A coluna, a tabela e o esquema existem, e tudo está referenciado corretamente. Tentei diferentes variações, mas o problema persiste. Meu ambiente é o Microsoft Fabric, dentro do Warehouse Gold.

Alguma sugestão sobre como resolver esse problema?

Tentei renomear uma coluna em uma tabela dentro do Microsoft Fabric usando o sp_renameprocedimento armazenado. Eu esperava que o nome da coluna fosse atualizado com sucesso, sem erros.

sql-server
  • 1 respostas
  • 48 Views
Martin Hope
Flea
Asked: 2025-03-09 03:34:28 +0800 CST

Ao criar uma instância do SQL Server a partir de um Dockerfile, ele parece não pegar a senha do SA

  • 5

Eu havia criado uma instância de contêiner docker do SQL Server anteriormente e consegui efetuar login com sucesso. Removi essa imagem e estava migrando o código de um comando docker run para um docker-compose com um Dockerfile de backup.

Tenho o ENV MSSQL_SA_PASSWORD definido no dockerfile, mas agora, quando tento efetuar login, aparece um erro: Falha no login para o usuário 'sa'". Parece que ele está armazenando em cache em algum lugar e não lembro mais qual era a senha.

Como posso resolver isso e fazer com que o contêiner use apenas a senha definida no Dockerfile?

FROM mcr.microsoft.com/mssql/server:2022-latest

COPY source/database/scripts /usr/src/app

ENV MSSQL_SA_PASSWORD "MyPassword1"
ENV ACCEPT_EULA Y

# Run SQL Server process
ENTRYPOINT [ "/opt/mssql/bin/sqlservr" ]

Obrigado

sql-server
  • 2 respostas
  • 26 Views
Martin Hope
MikeC
Asked: 2025-03-07 16:47:30 +0800 CST

Converter hora local em elemento XML para UTC

  • 5

Preciso converter um elemento de registro de data e hora na minha coluna XML para horário UTC no SQL Server 2019.

CREATE TABLE TestTable
   (    
       Id INT IDENTITY(1,1) NOT NULL,
       Data XML NOT NULL
   );

INSERT TestTable (Data) VALUES ('<root>
        <id>1</id>
        <timestamp>2024-08-20T10:55:37+10:00</timestamp>
    </root>');

Quero alterar o registro de data e hora para "2024-08-20T00:55:37Z". Estou brincando com "Data.modify('replace value of' ", mas não consigo encontrar um exemplo em que o novo valor seja baseado no valor antigo e não em uma simples substituição de string.

sql-server
  • 2 respostas
  • 48 Views

Sidebar

Stats

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

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

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