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-15758

Geoff Dawdy's questions

Martin Hope
Geoff Dawdy
Asked: 2020-10-26 16:56:11 +0800 CST

Como usar msdb.dbo.backupset e dbatools para reunir todas as informações históricas de tamanho de backup para todas as instâncias em um ambiente

  • 0

Eu tenho muitos servidores para gerenciar querer fazer isso manualmente em cada servidor, então gostaria de automatizar de alguma forma isso usando o módulo dbatools e a consulta abaixo para coletar as informações do conjunto de backup.

  WITH BackupsSize AS(
  SELECT TOP 1000
         rn = ROW_NUMBER() OVER (ORDER BY DATEPART(year,[backup_start_date]) ASC, DATEPART(month,[backup_start_date]) ASC)
    , [Year]  = DATEPART(year,[backup_start_date])
    , [Month] = DATEPART(month,[backup_start_date])
    , [Backup Size GB] = CONVERT(DECIMAL(10,2),ROUND(AVG([backup_size]/1024/1024/1024),4))
    , [Compressed Backup Size GB] = CONVERT(DECIMAL(10,2),ROUND(AVG([compressed_backup_size]/1024/1024/1024),4))
FROM 
    msdb.dbo.backupset
WHERE 
    [database_name] = N'A1000370D1'
AND [type] = 'D'
AND backup_start_date BETWEEN DATEADD(mm, - 13, GETDATE()) AND GETDATE()
GROUP BY 
    [database_name]
    , DATEPART(yyyy,[backup_start_date])
    , DATEPART(mm, [backup_start_date])
ORDER BY [Year],[Month]) 
--SECTION 1 END
 
--SECTION 2 BEGIN
SELECT 
   b.Year,
   b.Month,
   b.[Backup Size GB],
   0 AS deltaNormal,
   b.[Compressed Backup Size GB],
   0 AS deltaCompressed
FROM BackupsSize b
WHERE b.rn = 1
UNION
SELECT 
   b.Year,
   b.Month,
   b.[Backup Size GB],
   b.[Backup Size GB] - d.[Backup Size GB] AS deltaNormal,
   b.[Compressed Backup Size GB],
   b.[Compressed Backup Size GB] - d.[Compressed Backup Size GB] AS deltaCompressed
FROM BackupsSize b
CROSS APPLY (
   SELECT bs.[Backup Size GB],bs.[Compressed Backup Size GB]
   FROM BackupsSize bs
   WHERE bs.rn = b.rn - 1
) AS d

Eu tenho uma lista de servidores sentados na tabela em um banco de dados e planejo carregar uma variável $sqlinstance com minha lista de instâncias usando invoke-dbaquery.

O que não tenho certeza e preciso de ajuda é como usar o script SQL acima para reunir os dados históricos de backup para todos os bancos de dados em todos os servidores de uma só vez. Como posso percorrer cada banco de dados enquanto também percorro minha lista de instâncias?

sql-server backup
  • 2 respostas
  • 165 Views
Martin Hope
Geoff Dawdy
Asked: 2020-09-28 14:44:17 +0800 CST

Passando em várias instâncias para o comando dbatools GET-DBADBFILE

  • 0

Estou tentando reunir todas as informações do dbfile em todas as nossas instâncias sql em um de nossos ambientes. É um ambiente bastante grande e seria tedioso executar uma instância por vez. Eu pensei que haveria uma maneira fácil de fazer isso com o Powershell, mas parece que estou enfrentando um obstáculo.

Eu tenho uma lista de instâncias armazenadas em uma tabela/visualização [vSQLInstances]. Se eu passar esses valores para uma variável e usar essa variável como o parâmetro SQLInstance, recebo um erro.

Script que estou usando...

$sqlinstance = Invoke-DbaQuery -SqlInstance dbasql01\sql2019 -Database DBAEstate -Query "select sqlinstance from vSQLInstance;"

Get-DbadbFile -SqlInstance $sqlinstance | Select-Object sqlinstance, database, logicalname, size 

O erro que recebo:

Get-DbaDbFile : Cannot process argument transformation on parameter 'SqlInstance'. Cannot convert value 
"@{sqlinstance=PRODSQLD\D}" to type "Sqlcollaborative.Dbatools.Parameter.DbaInstanceParameter". Error: "Failed to interpret 
input as Instance: @{sqlinstance=PRODSQLD\D}"
At line:11 char:28
+ Get-DbaDbFile -SqlInstance $instancelist
+                            ~~~~~~~~~~~~~
+ CategoryInfo          : InvalidData: (:) [Get-DbaDbFile], ParameterBindingArgumentTransformationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-DbaDbFile
sql-server powershell
  • 1 respostas
  • 417 Views
Martin Hope
Geoff Dawdy
Asked: 2019-10-09 12:35:01 +0800 CST

Excluindo registros da consulta SQL

  • 0

Eu tenho uma tabela que estou tentando retornar apenas registros de rendition_type Interactive e nenhum outro rendition_type associado. Se um registro tiver mais de um rendition_type, preciso excluí-lo da lista.

DOC_ID    RENDITION_ID    RENDITION_TYPE
001       001             Interactive
001       002             Web PDF
002       003             Interactive
003       004             Interactive
003       005             Print PDF
004       006             Interactive
005       007             Interactive
005       008             Web PDF

Estou procurando uma consulta que retornará apenas linhas em que document_ID tem o tipo Rendition_type de apenas 1 e esse tipo é interativo.

sql-server t-sql
  • 1 respostas
  • 227 Views
Martin Hope
Geoff Dawdy
Asked: 2019-07-27 08:42:22 +0800 CST

Renomear chaves estrangeiras em massa no SQL Server 2017

  • 0

Eu tenho um banco de dados que foi recentemente migrado do Oracle para o SQL Server 2017. Quem configurou inicialmente o banco de dados definiu todas as chaves estrangeiras como nomes gerados pelo sistema. Em outras palavras, se eu olhar para as chaves estrangeiras em uma tabela, elas serão nomeadas ( SYS_C005214, SYS_C005271, SYS_C005272). Eu preferiria que todos eles fossem renomeados para:

FK_ChildTable_childColumn_ParentTable_parentColumn

Eu gostaria de configurar um script que mudará todas as chaves estrangeiras para o nome apropriado. Existe uma maneira de fazer isso sem ter que entrar em cada chave para ver sua definição e renomeá-la manualmente?

Nota : agora percebo que depois de executar o script de Aaron Bertrand, também preciso disso para chaves primárias.

sql-server foreign-key
  • 1 respostas
  • 544 Views
Martin Hope
Geoff Dawdy
Asked: 2019-04-02 13:52:50 +0800 CST

Migrando coluna CLOB Oracle de 2+ GB para SQL Server VARCHAR(MAX)

  • 1

Eu tenho uma coluna em um banco de dados Oracle contendo dados HTML com imagens incorporadas que resultam em alguns registros com mais de 2 GB de tamanho para essa coluna. Migrei com sucesso o restante do banco de dados para o SQL Server, exceto esta coluna CLOB. Com o SQL Server varchar(max) incapaz de lidar com qualquer coisa com tamanho superior a 2 GB, quais são minhas opções?

sql-server oracle
  • 1 respostas
  • 151 Views
Martin Hope
Geoff Dawdy
Asked: 2018-12-20 09:38:38 +0800 CST

Expressão de relatório do SSRS FormatDateTime altera Nulos para '1/1/0001'

  • 0

Tenho um relatório onde preciso remover a hora de uma coluna datetime. Eu encontrei essa expressão para funcionar, mas ela altera todos os valores nulos para '1/1/0001'

=FormatDateTime(Fields!Temperature_Control_Inspection_Date.Value,DateFormat.ShortDate)

Eu tentei a expressão abaixo para procurar nulos, mas não parece funcionar.

=IIF(Fields!Temperature_Control_Inspection_Date is nothing, nothing, FormatDateTime(Fields!Temperature_Control_Inspection_Date.Value,DateFormat.ShortDate))

Como posso mostrar apenas a data de uma coluna DateTime sem também ter todos os nulos substituídos por '1/1/0001'?

sql-server ssrs-2016
  • 1 respostas
  • 2185 Views
Martin Hope
Geoff Dawdy
Asked: 2018-12-18 13:13:20 +0800 CST

encontrar o registro atualizado mais recentemente com várias colunas de data

  • 0

Recentemente, herdei um banco de dados SQL Server 2016 que foi convertido de um banco de dados antigo do MS Access. Eu tenho uma tabela que mostra várias datas de reparo e datas de teste para números de série associados. Eu gostaria de ter uma única linha por número de série com todas as datas mais recentes mostradas. A tabela agora está mostrando várias linhas por número de série, dependendo das várias datas inseridas no banco de dados.

Tabela de datas de reparo e configuração:

+------+-------------+-----------------+---------------+
| S/N  | REPAIR_DATE | INSPECTION_DATE | REPLACED_DATE |
+------+-------------+-----------------+---------------+
| 1001 | 2017-11-17  | 2017-11-17      | NULL          |
| 1002 | NULL        | NULL            | NULL          |
| 1002 | 2016-11-21  | 2016-11-21      | NULL          |
| 1004 | NULL        | NULL            | NULL          |
| 1004 | NULL        | 2017-03-28      | 2017-09-07    |
| 1004 | 2017-12-15  | NULL            | NULL          |
+------+-------------+-----------------+---------------+

Saída Desejada

+------+-------------+-----------------+---------------+
| S/N  | REPAIR_DATE | INSPECTION_DATE | REPLACED_DATE |
+------+-------------+-----------------+---------------+
| 1001 | 2017-11-17  | 2017-11-17      | NULL          |
| 1002 | 2016-11-21  | 2016-11-21      | NULL          |
| 1004 | 2017-12-15  | 2017-03-28      | 2017-09-07    |
+------+-------------+-----------------+---------------+

Como posso combinar os resultados da tabela para que apenas uma linha do número de série mostre as datas mais recentes de cada coluna?

t-sql sql-server-2016
  • 1 respostas
  • 1151 Views
Martin Hope
Geoff Dawdy
Asked: 2018-01-05 12:18:51 +0800 CST

Como extrair a data desta coluna varchar

  • 0

Preciso remover desta tabela os registros com mais de 30 dias.

Temos apenas 2 colunas nesta tabela. A primeira data após 'Printed_%' é o que usarei para determinar se o registro deve ser excluído. Observe que algumas das datas estão no formato MM/DD/AAAA, enquanto algumas aparecem no formato M/D/AAAA na string. Como posso extrair a data para que eu possa determinar quais linhas têm mais de 30 dias?

ID      Command
123232  Printed_9/6/2017 2:36:09 PM W;03;2K;8/6/2013;8/6/2015;ODSI3498
123233  Printed_9/6/2017 2:53:20 PM W;07;2K;8/6/2013;8/6/2015;PWEOIR123
123234  Printed_9/6/2017 2:54:44 PM W;15;2K;11/9/2011;11/18/2005;PWEOIR123
123235  Printed_10/21/2016 10:21:10 AM W;15;2K;11/9/2011;11/18/2005;ODSI3498
123236  Printed_11/15/2015 10:30:13 AM W;02;2K;8/7/2013;8/7/2014;ODSI3498
123237  Printed_12/7/2014 10:30:26 AM W;21;2K;7/30/2013;7/30/2014;ODSI3498
t-sql sql-server-2012
  • 2 respostas
  • 692 Views
Martin Hope
Geoff Dawdy
Asked: 2017-06-15 08:50:06 +0800 CST

Erro de sintaxe do SQL Agent PowerShell

  • 6

Estou tentando configurar um script do PowerShell em um trabalho do SQL Agent (SQL Server 2016). Estou usando um módulo de terceiros, DBATOOLS.psd1, que parece ser onde estou recebendo meu erro de sintaxe. Atualmente meu SQL Job tem uma linha de código que está falhando:

Import-Module e:\dbatools-master\dbatools-master\dbatools.psd1

Por que o trabalho está falhando com o seguinte erro? Este comando funciona muito bem quando eu o executo através do PowerShell ISE.

Error Message: Unable to start execution of step 1 (reason: line(5): Syntax error).  The step failed.
sql-server sql-server-2016
  • 3 respostas
  • 1982 Views
Martin Hope
Geoff Dawdy
Asked: 2017-04-26 08:36:02 +0800 CST

Como substituir uma única tabela pela coluna Identity Primary Key de um backup de banco de dados?

  • 2

Eu preciso restaurar uma tabela de um backup. Meu entendimento é que a única maneira de obter uma única tabela de volta ao banco de dados é copiá-la em uma tabela temporária. Em seguida, elimine a tabela antiga e renomeie a nova com o nome antigo. Meu problema vem com esta etapa específica devido à coluna de chave primária ser uma coluna de identidade. A tabela também tem várias restrições de chave estrangeira. Como posso copiar uma tabela do meu banco de dados de backup para o banco de dados original e ainda manter a coluna de identidade da chave primária e todas as restrições externas?

Aqui está minha tentativa de script atual:

CREATE TABLE dbo.Incidents_tmp
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[IncidentAction_ID] [int] NULL,
[IncidentCompromise_ID] [int] NULL,
[IncidentDamage_ID] [int] NULL,
[IncidentReportingEntity_ID] [int] NULL,
[IncidentStatus_ID] [int] NULL,
[IncidentType_ID] [int] NULL,
[IncidentID] [varchar](20) NULL,
[Version] [timestamp] NOT NULL,
 CONSTRAINT [PK_Incidents_tmp] PRIMARY KEY CLUSTERED 
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO

SET IDENTITY_INSERT dbo.Incidents_tmp ON
GO

IF EXISTS ( SELECT * 
        FROM DB_old.dbo.Incidents )
INSERT INTO DB_new.dbo.Incidents_tmp 
        ( 
        ID ,
        IncidentAction_ID ,
        IncidentCompromise_ID ,
        IncidentDamage_ID ,
        IncidentReportingEntity_ID ,
        IncidentStatus_ID ,
        IncidentType_ID ,
        IncidentID 
        )
    SELECT 
    ID ,
    IncidentAction_ID ,
    IncidentCompromise_ID ,
    IncidentDamage_ID ,
    IncidentReportingEntity_ID ,
    IncidentStatus_ID ,
    IncidentType_ID ,
    IncidentID ,
    FROM DB_old.dbo.Incidents TABLOCKX
GO

SET IDENTITY_INSERT DB_new.dbo.Incidents_tmp OFF
GO

ALTER TABLE dbo.IncidentSubject DROP CONSTRAINT 
FK_IncidentSubject_Incidents;
ALTER TABLE dbo.IncidentsReportLog DROP CONSTRAINT 
FK_IncidentsReportLog_Incidents;
ALTER TABLE dbo.Incidents DROP CONSTRAINT PK_Incidents;

DROP TABLE DB_new.dbo.Incidents
GO

Exec sp_rename 'Incidents_tmp', 'Incidents'

Exec sp_rename 'PK_incidents_tmp', 'PK_Incidents'


ALTER TABLE [dbo].[IncidentSubject]  WITH CHECK ADD  CONSTRAINT 
[FK_IncidentSubject_Incidents] FOREIGN KEY([Incident_ID])
REFERENCES [dbo].[Incidents] ([ID])
ON DELETE CASCADE
GO

ALTER TABLE [dbo].[IncidentSubject] CHECK CONSTRAINT 
[FK_IncidentSubject_Incidents]
GO

Quando tento adicionar as restrições de volta, recebo um erro informando:

Msg 547, Level 16, State 0, Line 1
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_IncidentSubject_Incidents". The conflict occurred in database "DB_new", table "dbo.Incidents", column 'ID'.

EDIT: Algumas informações adicionais. O usuário deste aplicativo excluiu 175 incidentes por acidente. Infelizmente ela não nos contou até duas semanas depois e então não foi encaminhado para nós até quase um mês depois. Os usuários acessam o aplicativo e fazem alterações para que uma restauração completa do banco de dados não seja uma opção. O usuário está solicitando que apenas os incidentes excluídos sejam restaurados. Examinei o banco de dados e notei uma tabela de incidentes com os dados ausentes no banco de dados atual e os 175 registros existentes no banco de dados de backup. Espero que isso forneça um contexto melhor do motivo pelo qual estou tentando restaurar apenas uma única tabela de incidentes. Está começando a parecer que as tabelas adicionais precisam ser restauradas.

sql-server sql-server-2012
  • 1 respostas
  • 872 Views
Martin Hope
Geoff Dawdy
Asked: 2017-03-04 13:38:32 +0800 CST

Não é possível excluir o login do domínio do SQL SERVER 2012

  • 3

Estamos tentando limpar algumas contas antigas em um de nossos clusters AlwaysOn.

Esta conta em particular se recusa a ser legal e se permite ser excluída.

USE [master]
GO
DROP LOGIN [PROD\dba007]
GO

Erro:

Msg 15173, Level 16, State 1, Line 4
Server principal 'PROD\dba007' has granted one or more permission(s). Revoke the permission(s) before dropping the server principal.

A permissão que está reclamando é uma permissão de conexão com o HADR_ENDPOINT

Select perm.* from sys.server_permissions  perm
INNER JOIN sys.server_principals prin ON perm.grantor_principal_id = prin.principal_id
where prin.name = N'PROD\dba007'

class   class_desc  type    permission_name state   state_desc
105     ENDPOINT    CO      CONNECT         G       GRANT

Agora, a próxima coisa lógica seria revogar as permissões de conexão.

USE master;
REVOKE CONNECT ON ENDPOINT ::HADR_endpoint from [PROD\dba007]

Mas isso produz a mensagem

Cannot grant, deny, or revoke permissions to sa, dbo, entity owner, information_schema, sys, or yourself.

A única função de servidor da qual é membro é PUBLIC.

Como posso descobrir o que exatamente está me impedindo de revogar essas permissões para que eu possa descartar o usuário?

Obrigado.

sql-server sql-server-2012
  • 1 respostas
  • 2036 Views
Martin Hope
Geoff Dawdy
Asked: 2016-12-15 08:40:46 +0800 CST

PowerShell: Test-SqlAvailabilityReplica script em execução nunca é concluído

  • 1

Ainda sou relativamente novo no PowerShell, então não tenho certeza de todas as etapas de solução de problemas que posso seguir para resolver esse problema. Gostaria de usar o comando abaixo para determinar se a réplica é primária ou não.

Acredito que carreguei com sucesso o provedor e o smo. O Intellisense parece reconhecer o comando.

Se eu executar o seguinte comando

Test-SqlAvailabilityReplica

O script será executado, mas nunca será concluído. Estou executando-o em uma das réplicas, então estou assumindo que deveria estar apenas pegando o host local. Se eu adicionar o sinalizador -WhatIf, ele ainda será executado sem terminar.

Eu também tentei Test-SqlAvailabilityGroup e também nunca termina.

O que posso fazer para que esse comando funcione? Como descubro o que está causando o travamento?

EDIT: Parece que meu problema é com o caminho .... Este local do caminho funciona

SQLSERVER:\Sql\FooHostname\FooInstance\AvailabilityGroups\Fo‌​oAg\AvailabilityRepl‌​icas\ 

mas então eu tento usar este local de caminho e ele falha.

SQLSERVER:\Sql\FooHostname\FooInstance\AvailabilityGroups\Fo‌​oAg\AvailabilityRepl‌​icas\MainReplica

Edit2:

Temos certeza que é

<ServerName> 

no final? Eu posso definir minha localização para

SQLSERVER:\Sql\FooHostname\FooInstance\AvailabiltyGroups\FooAg\AvailabilityReplicas\ 

bem. Quando faço um DIR para ver o que está disponível, vejo minhas duas réplicas listadas como

"FooNode1\FooInstance" 

e

"FooNode2\FooInstance" 

Portanto, para a parte "MainReplica" do caminho, devo substituí-la por FooNode1 ou FooNode1\FooInstance?

sql-server sql-server-2012
  • 1 respostas
  • 1403 Views
Martin Hope
Geoff Dawdy
Asked: 2016-08-13 08:48:53 +0800 CST

Onde/como gerar a chave de validação e a chave de descriptografia para a validação do estado de exibição do SSRS

  • 2

De acordo com este artigo da Technet , preciso:

Gere uma chave de validação e uma chave de descriptografia usando a funcionalidade de geração automática fornecida pelo .NET Framework.

A etapa não explica como gerar a chave de validação e a chave de descriptografia.

encryption ssrs
  • 2 respostas
  • 3567 Views
Martin Hope
Geoff Dawdy
Asked: 2016-06-29 13:57:45 +0800 CST

ERRO: Erro de estouro aritmético ao converter float em tipo de dado numérico

  • 1

Infelizmente, tenho alguns dados incorretos e preciso trabalhar nisso. Eu tenho uma coluna Parcel em uma planilha com algumas parcelas que foram inadvertidamente convertidas em números de ponto flutuante. Eu postei uma pergunta para resolver este problema Manipulando a coluna sql com tipos de dados varchar e float mistos No entanto, agora estou recebendo um erro quando tento o seguinte código:

SELECT CAST(CAST(CAST([Parcel Number 2(max)] AS FLOAT) AS DECIMAL) AS NVARCHAR(255))
FROM XLSIMPORT WHERE [Parcel Number 2(max)] = '1.4515020001e+012'

O erro que estou recebendo é:

Msg 8115, Level 16, State 6, Line 41
Arithmetic overflow error converting float to data type numeric.    
t-sql sql-server-2012
  • 1 respostas
  • 21701 Views
Martin Hope
Geoff Dawdy
Asked: 2016-06-08 11:35:02 +0800 CST

Erro: "O certificado não pode ser descartado porque uma ou mais entidades estão assinadas ou criptografadas usando-o."

  • 9

Tenho um certificado que gostaria de remover do banco de dados.

Se eu emitir o comando

DROP CERTIFICATE <FooCert>

eu recebo o erro

The certificate cannot be dropped because one or more entities are either signed or encrypted using it

De acordo com Jason Strate, devo conseguir descobrir o que está assinado no certificado.

A consulta a seguir retorna 0 linhas:

SELECT OBJECT_SCHEMA_NAME(co.major_id) + '.' + OBJECT_NAME(co.major_id)
FROM sys.certificates c 
INNER JOIN sys.crypt_properties co ON c.thumbprint = co.thumbprint
WHERE co.crypt_type_desc = 'SIGNATURE BY CERTIFICATE' 
AND c.name = 'FooCert'

Eu também tentei desacoplar as entidades por esta questão SO. https://stackoverflow.com/questions/52460/how-do-i-find-and-decouple-entities-from-a-certificate-when-upgrading-ms-sqlserv

Como posso remover as dependências deste certificado para removê-lo?

sql-server sql-server-2012
  • 2 respostas
  • 14686 Views
Martin Hope
Geoff Dawdy
Asked: 2016-05-13 08:49:05 +0800 CST

Combinar endereços ausentes Unit/Suite #

  • 0

Eu tenho uma lista de endereços que precisam ser atualizados no SQL Server. Como posso adicionar o número da suíte aos endereços que estão faltando?

Address
1 Burton Hills Blvd, Suite 250
1 Burton Hills Blvd
1 Burton Hills Blvd
1 Burton Hills Blvd
1 Burton Hills Blvd
1 Burton Hills Blvd
1 Ford Pl
1 Ford Pl, Suite 5B
1 Kish Dr
1 Park Center Dr, Suite 11
1 Park Center Dr
sql-server sql-server-2012
  • 1 respostas
  • 33 Views
Martin Hope
Geoff Dawdy
Asked: 2016-05-13 06:36:04 +0800 CST

Códigos postais de 9 dígitos estão relatando LEN de 12

  • 3

Estou tentando resolver algumas dificuldades em fazer com que os códigos postais sejam exibidos corretamente.

A planilha original tem códigos postais de formatos mistos de 5 e 9 dígitos. Após o processo de importação, esses códigos postais de 9 dígitos relatam um comprimento de 12 dígitos. Agora, quando tento adicionar um hífen '-' aos códigos postais de 9 dígitos, recebo resultados e erros anormais devido ao comprimento incorreto e a vários problemas de conversão de tipo de dados.

A importação foi realizada utilizando um método openrowset para importar os dados de uma planilha.

Quando consulto os dados recém-importados, vejo os códigos postais mostrando o mesmo que estavam na planilha, mas o comprimento está errado.

SELECT ZIP,
    LEN(LTRIM(RTRIM(Zip))) AS ZIPLENGTH
  FROM XLS_IMPORT
ZIP         ZIPLENGTH
45750       5
432013256   12
441153221   12
44120       5
441351362   12

Se eu selecionar os 9 caracteres à esquerda dos dados, tudo será convertido em flutuante e os códigos postais agora ficarão ilegíveis.

SELECT LEFT(ZIP,9) FROM XLS_IMPORT
WHERE LEN(LTRIM(RTRIM(ZIP))) = 12
ZIP
4.32013e+
4.42034e+
4.56637e+
4.41153e+
4.36045e+
4.41133e+

Como posso obter esses códigos postais de volta aos 9 dígitos corretos? Ou como posso adicionar um hífen aos códigos postais de 9 dígitos que informam o comprimento de 12? Meu objetivo final é simplesmente fazer com que o código postal de 9 dígitos tenha um hífen no meio.

O tipo de dados da Zipcoluna é float.

Acabei de descobrir que algumas das minhas planilhas, como NJ e NY, têm um apóstrofo antes do 0 inicial no código postal. Vou precisar investigar como lidar com os códigos postais '0xxxx para que isso funcione em algumas das minhas importações de planilhas.

sql-server sql-server-2012
  • 3 respostas
  • 2376 Views
Martin Hope
Geoff Dawdy
Asked: 2016-05-09 07:59:34 +0800 CST

Manipulando coluna sql com tipos de dados varchar e float mistos

  • 3

Temos algumas planilhas Excel com números de parcelas para propriedades que devem estar em um formato varchar padrão semelhante a:

[Parcel # 1]          [Building Address]
038-60-171-16-000     1750 W 4th St
038-60-238-09-000     2003-2027 W 4th St
01-15393              201 5th St NE
01-13504              101 5th St SE
25-20-00-03-008.501   1800 E 5th St
36-102-0700-000       2932 S 5th St
280615                2600-B 6th St SW
31-0101.000           1202 16th St
054-259620-00.000     843 N 21st St

Infelizmente, temos alguns números de encomendas que foram convertidos para notação científica. Isso significa que eles estão no formato errado para números de encomenda e devem ser convertidos de volta para o formato decimal ou numérico normal. Estou encontrando dificuldade em converter apenas os valores que possuem a notação científica. A coluna é do tipo de dados nvarchar(255), mas esses valores precisam ser manipulados de volta para o tipo de dados numérico ou decimal.

Parcel Number 1(Min)    Building Address
3.4007000221e+015   247 S Burnett Rd
3.1844401004e+013   433 N Cleveland Ave
3.4007000222e+016   2415 Lexington Ave
E020-0010-006-0211  7271 N Main St
3.6360705006e+013   825 W Market St
3.4007000353e+015   148 W North St
1.40109139e+011     4453-4461 SR-159
16-B-029-E-00-004   7314-7352 Industrial Park Blvd

A tabela acima foi recuperada com a seguinte instrução SELECT

SELECT [Parcel Number 1] 
,[Building Address]
FROM XLSimport
WHERE [Parcel Number 1] like '%e%'

Meu entendimento é que devo ser capaz de converter o valor em decimal quando estiver em notação científica. No entanto, outros números de encomenda que tenham um 'E' legítimo precisam permanecer os mesmos. Como posso contabilizar os diferentes valores de 'e' e ainda converter os números de parcela em notação científica de volta ao seu formato de número de parcela padrão?

Frequentemente me deparo com o erro ao converter nvarchar em mensagens de erro numéricas e me pergunto se é por causa dos números das encomendas que têm um E, mas não estão no formato científico.

Por exemplo, eu executo esta consulta:

SELECT
CASE 
    WHEN [Parcel Number 1] like '%E+%' THEN CAST(CAST([Parcel Number 1] AS FLOAT) AS DECIMAL)
    ELSE [Parcel Number 1]
END
FROM XLSimport

Recebo então o seguinte erro:

Msg 8114, Level 16, State 5, Line 1
Error converting data type nvarchar to numeric.
sql-server sql-server-2012
  • 1 respostas
  • 10487 Views
Martin Hope
Geoff Dawdy
Asked: 2016-05-07 10:44:07 +0800 CST

Quais são os requisitos mínimos para executar um pacote dtsx em um PC?

  • 0

Um de meus clientes tem algumas necessidades muito específicas para executar uma planilha por meio de alguns processos ETL que criei.

Desenvolvi um pacote SSIS .dtsx que importa uma planilha do Excel para o SQL Server, executa alguns processos de transformação e exporta os resultados para outra planilha do Excel. Estou querendo entregar a ferramenta ao cliente para que ele possa iniciar o processo de ETL ad-hoc. Para permitir que eles executem o pacote DTSX, quais são os requisitos mínimos necessários para executá-lo em seu sistema? Isso pode ser feito com o SQL Express ou eles precisam ter o Integration Services em execução para executar o pacote?

sql-server ssis
  • 1 respostas
  • 1003 Views
Martin Hope
Geoff Dawdy
Asked: 2015-12-04 09:17:28 +0800 CST

Não é possível alterar o nome do servidor após o clone da VM

  • 4

Por razões fora do meu controle, devo encontrar uma solução para esse problema. Simplesmente reinstalar a instância não é uma opção. O nome do servidor que aparece como server_id 0 em sys.servers ainda mostra o nome do servidor antigo.

Estou recebendo um erro ao executar o comando abaixo:

sp_dropserver 'OLD_INSTANCE'
GO
sp_addserver 'NEW_INSTANCE', Local
GO 

Mensagem de erro:

Msg 15190, Nível 16, Estado 1, Procedimento sp_dropserver, Linha 67
Ainda há logins remotos ou logins vinculados para o servidor 'OLD_INSTANCE'.
Msg 15028, nível 16, estado 1, procedimento sp_addserver, linha 87
O servidor 'NEW_INSTANCE' já existe.

O mais estranho é que o login remoto é um login 'nulo'.

exec sp_dropremotelogin @remoteserver = 'OLD_INSTANCE'
go

Mensagem de erro:

Msg 15185, nível 16, estado 1, procedimento sp_dropremotelogin, linha 70
Não há nenhum usuário remoto '(null)' mapeado para o usuário local '(null)' do servidor remoto 'OLD_INSTANCE'.

Não existem logins para a instância antiga.

sp_helpremotelogin 'OLD_INSTANCE'

Msg 15201, Nível 16, Estado 1, Procedimento sp_helpremotelogin, Linha 37
Não há logins remotos para o servidor remoto 'OLD_INSTANCE'.

Como renomeio esta instância se não consigo descartar o login inexistente? Existe uma maneira de liberar os logins?

sql-server sql-server-2008-r2
  • 2 respostas
  • 8773 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