Migrar datos, . Comillas simples en datos, como evitar errores al migrar datos con comillas simples y otros

02/11/2006 - 16:35 por Wabi | Informe spam
Tengo la version de escritorio de sql server y estoy migrando datos de una
base de datos en access a sql server.
Estoy haciendolo con un pequeño programa y me encuentro que la sentencia sql
me da error al encontrar una comilla siemple en los datos (ej: un apellido
como D'ALESANDRO).
Como puedo solucionar este problema. Disculpen la pregunta que supongo sera
elemental para muchos pero estoy aprendiendo.
Gracias.
Algo mas ¿No es posible definir un campo como autonumerico en la version sql
server de escritorio, pense que era el tipo de datos uniqueidentifier pero
no...?
¿Tampoco cuenta con herramientas para importar datos esta version de
escritorio?
¿De que manera me aconsejan que migre los datos?
Es una tabla bastante grande (90.000 registros)...
para migrar los datos genero un datareader para la tabla de access y luego
lo leo y ejecuto una instruccion insert para cada registros en la tabla de
sql, pero me parece que no debe ser la manera mas eficiente.
Bueno, gracias por la ayuda.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
02/11/2006 - 16:57 | Informe spam
Wabi,

Mostrar la cita
Debes duplicar cada apostrofe.

insert into dbo.t1(c1) values('D''ALESANDRO')

Mostrar la cita
Puedes usar una columna tinyint, smallint, int, bigint, numeric y prender la
propiedad IDENTITY

create table dbo.t1 (
c1 int not null identity(1, 1)
...
)

Mostrar la cita
Yo no he trabajado mucho con esa version, me pregunto si al instalar esta,
tambien se instala el utilitario BCP.EXE

De todas maneras no son muchas filas, asi que tu aplicacion .net no debe
demorar mucho. Te recominedo leas sobre uso de la clase SqlBulkCopy si es que
estas usando ADO.NET 2.0

Performing Bulk Copy Operations
http://msdn2.microsoft.com/en-US/li...5da1a.aspx


AMB


"Wabi" wrote:

Mostrar la cita
#2 BitOne®
03/11/2006 - 01:34 | Informe spam
solo para unirme al hilo.
el modificador QUOTED_IDENTIFIER apagado y encederlo al terminar.


SET QUOTED_IDENTIFIER off
if object_id('tempdb..#j','U') is not null
drop table #j
go
create table #j(
campito char(10)
)
go
insert into #j values ("don'pepito")
go
select * from #j


Saludos,

BitOne®
www.yocsql.com



"Alejandro Mesa" wrote in message
news:
Mostrar la cita
sera
Mostrar la cita
sql
Mostrar la cita
pero
Mostrar la cita
la
Mostrar la cita
que
Mostrar la cita
una
Mostrar la cita
sql
Mostrar la cita
apellido
Mostrar la cita
sera
Mostrar la cita
sql
Mostrar la cita
pero
Mostrar la cita
luego
Mostrar la cita
de
Mostrar la cita
#3 Wabi
07/11/2006 - 01:19 | Informe spam
Encontre una solucion a mi problema en el foto de VBNET.
Lo que me aconsejaron es lo siguiente y funciona bien:


Aunque el problema se resuelve duplicando la comilla, la forma
recomendada de evitar estos y otros problemas consiste en no concatenar
nunca datos de usuario con la sentencia. en su lugar, lo que se hace es
parametrizar la sentencia y asignar tu dato al parámetro:

Dim sentencia as string = "Insert into miTabla values (@valor)"
Dim comando as New SqlCommand(sentencia, conexion)
comando.Parameters.Add("@valor", "D'Alesandro")
comando.ExecuteNonQuery()
Ads by Google
Search Busqueda sugerida