Duda una tabla con una base de datos SQL

Iniciado por yoelrodguez, 5 Abril 2020, 03:14 AM

0 Miembros y 1 Visitante están viendo este tema.

yoelrodguez

Tengo la siguiente situación me pidieron hacer un proyecto con una base de datos SQL ya creada pero me encuentro que los nombres de las tablas y los campos de las tablas están escritos con espacios y cuando trato de ejecutar mi consulta me envía un error de sintaxis. Esta base datos se encuentra funcionando con una aplicación hecha en Visual Basic y yo estoy haciendo una aplicación web con php y sql server. A continuación le dejo mi código:


Select Customer.AR Cust Password, Customer.AR Cust User Name FROM AR Customer AS Customer


Error:
Citar19:04:05 Kernel error: [FreeTDS][MSSQL Server] , Server EC2AMAZ-977S99A\APPBSC, Line 1
Incorrect syntax near 'Password'.

WHK

#1
Bueno, utilizar espacios en blanco como nombre de tablas o columnas es una pésima practica, de hecho ni si quiera debieran tener mayúsculas.

Prueba con esto:

Select
   Customer.`AR Cust Password`, Customer.`AR Cust User Name`
FROM `AR Customer` AS Customer


Para que le pones "AR Cust Password" de nombre de columna en una tabla que ya se llama "AR Customer", está claro que todos los campos le pertenecen a "AR Customer", no tienes porque replicar el nombre de la tabla en las columnas.

CREATE TABLE customers (
    id LONG NOT NULL PRIMARY KEY,
    identifier UUID NOT NULL,
    username varchar(45) NOT NULL,
    password varchar(45) NOT NULL
);


Igual hacen falta muchas columnas adicionales, como el salt que sumará el hash de la contraseña (no esperarás poner la contraseña en texto plano en la base de datos), el correo del usuario, el hash de recuperación de contraseñas, la tabla de sesiones, etc.

Saludos.

Filantropo

Para los campos con espacios creo se encierran con los [ ]


Select [AR Cust Password], [AR Cust User Name] FROM AR Customer AS Customer



WHK

Eso solo funciona en Microsoft SQL Server, no es parte del lenguaje SQL estandar.

Serapis

Seguro que son espacios y no barras bajas "_" ???.
Nombre_Cliente en vez de "Nombre Cliente"

yoelrodguez

Muchas gracias con los [] logre resolver el problema y si estoy usando SQLserver.