Принуждение типа данных в запросе на создание таблицы Доступа MS

Я всегда рекомендую определить столбцы, в которых Вы нуждаетесь, на всякий случай Ваши изменения схемы, и Вам не нужен дополнительный столбец.

, Кроме того, квалифицируйте имена столбцов с именем таблицы. Это очень важно, когда запрос содержит соединения. Без квалификаций таблицы может быть трудно помнить, какой столбец появляется, от которого таблица и добавление столь же именованного столбца к одной из других таблиц могут повредить Ваш запрос.

5
задан Rap 9 December 2009 в 17:22
поделиться

3 ответа

Один из способов сделать это - явно создать таблицу перед тем, как что-либо в нее помещать.

Ваш текущий оператор, вероятно, выглядит следующим образом:

SELECT Persons.LastName,Orders.OrderNo
INTO Persons_Order_Backup
FROM Persons
INNER JOIN Orders
ON Persons.P_Id=Orders.P_Id
WHERE FirstName = 'Alistair'

Но вы также можете сделать это:

----Create NewTable
CREATE TABLE NewTable(FirstName VARCHAR(100), LastName VARCHAR(100), Total DOUBLE)
----INSERT INTO NewTableusing SELECT
INSERT INTO NewTable(FirstName, LastName, Total)
SELECT FirstName, LastName, 
FROM Person p
INNER JOIN Orders o
ON p.P_Id = o.P_Id
WHERE p.FirstName = 'Alistair'

Таким образом, вы полностью контролируете типы столбцов. Вы всегда можете отбросить таблицу позже, если вам нужно будет создать ее заново.

8
ответ дан 13 December 2019 в 19:28
поделиться

Вы можете использовать приведение к функции FLOAT CDBL () , но, как ни странно, ядро ​​СУБД Access не может обработать NULL , поэтому вы должны справиться с этим самостоятельно, например,

SELECT first_column, 
       IIF(second_column IS NULL, NULL, CDBL(second_column)) 
          AS second_column_as_float
  INTO Table666
  FROM MyTest;

... но вам понадобится ALTER TABLE , чтобы добавить свои ключи, ограничения и т. Д. Лучше просто CREATE TABLE Сначала затем используйте INSERT INTO..SELECT , чтобы заполнить его.

3
ответ дан 13 December 2019 в 19:28
поделиться

Вы можете использовать CDbl вокруг столбцов.

0
ответ дан 13 December 2019 в 19:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: