Внутренняя база данных:
[Доступ Майкрософт]
и
[Майкрософт SQL-сервер]
После замены кода ASP следует обратить внимание на некоторые места, которые необходимо доработать:
[1] Проблемы с подключением (пример)
[Доступ Майкрософт]
constr = "DBQ=c:dataclwz.mdb; DRIVER={Microsoft Access Driver (*.mdb)}"
[Майкрософт SQL-сервер]
constr = "DRIVER={SQL Server};SERVER=host;DATABASE=mydata;uid=sa;pwd="
[2] Подобные функции (пример)
[1]DATEDIFF(datepart, startdate, enddate)
Параметры параметра datepart следующие:
Описание настройки————————————
[Доступ Майкрософт]
годуууу
квартал Q
месяц м
количество дней в году y
день
Дни недели
Чжоу ву
часы ч
минуты
секунды
[Сервер Microsoft Sql]
год гг, гггг
квартал кв, кв
месяц мм, м
день года, й, й
день дд, д
неделя неделя, оу
час хх
минута ми, н
вторая сс, с
миллисекунда мс
----------------------
По сути, то же самое, но будьте внимательны при написании,
[Microsoft Access] Добавьте кавычки, например: dateiff('d',enddate,'2004/08/01')
[Microsoft Sql Server] не требуется, например: dateiff(d,enddate,'2004/08/01')
[2][Microsoft Access] может использовать функции преобразования типов данных, такие как cstr и
В [Microsoft Sql Server] используйте функцию преобразования или приведения, например:
конвертировать(varchar,[количество]) и т.д.
[3][Сервер Microsoft Sql]
Чтобы получить текущее время, используйте getdate и т. д.
[3] Операторы
[Майкрософт SQL-сервер]
доступный
СЛУЧАЙ
КОГДА ТОГДА
КОГДА ТОГДА
...
ЕЩЕ
КОНЕЦ
заявление, в то время как
[Доступ Майкрософт]
Не поддерживается.
[Microsoft Access] также не поддерживает оператор Between.
[Microsoft Sql Server] можно записать так:
[дата] между @date1 и @date2
[4] Таблица запросов
[Майкрософт SQL-сервер]
Его можно запросить, объединив три или более таблиц, и
[Доступ Майкрософт]
Кажется, что для запроса можно объединить только две таблицы (требуется подтверждение со стороны органа власти).
И [Microsoft Sql Server] может использовать соединители «*=" и «=*». [5] Задача деления на ноль
[Доступ Майкрософт]
Когда делитель равен нулю, соответствующие записи автоматически отбрасываются и
[Майкрософт SQL-сервер]
Будет сообщено об ошибке, и запрос будет прекращен. Удалить код:
[Доступ Майкрософт]
Вы можете написать это так: удалить * из [таблицы]
[Майкрософт SQL-сервер]
Это можно записать только так: удалить из [таблицы]
Много раз будет сообщаться об ошибке
________________________________________
Текущая дата:
[Доступ Майкрософт]
Используйте дату()
[Майкрософт SQL-сервер]
Используя getdate(), если база данных может изменить тип, вы можете добавить это в код ASP:
если inStr(constr,"Microsoft Access") > 0, то
sqlstr=[Microsoft Access][код sql]
еще
sqlstr=[Сервер Microsoft Sql][код sql]
конец, если
(constr — строка подключения)
Таким образом, даже если база данных будет изменена, нет необходимости менять запрос к базе данных и обновлять код.
Кроме того: в доступе есть записи полей true и false, а в sql есть только smallint. Соответственно, если в доступе есть "имя поля=true", то в sql его следует изменить на "имя поля=1".
Большинство бесплатных программ ASP в Интернете используют базу данных доступа. Однако база данных доступа, как небольшая и средняя автономная система баз данных, часто перегружена, когда она используется для веб-приложений с большим количеством посещений и данных. Обычно считается, что производительность базы данных доступа начнет значительно снижаться, когда она превысит 50 МБ. После того, как она превысит 100 МБ, проблемы ошибок и медленной работы станут более заметными. Хотя мы можем изо всех сил стараться оптимизировать программу с точки зрения повышения производительности, как мы это делали после Dongwang 7.0, это не может фундаментально решить проблему.
В настоящее время, возможно, наиболее вероятным способом является использование базы данных Microsoft SQL Server. Конечно, вы также можете использовать другие базы данных, такие как Oracle, MySQL и т. д., но в виде перезаписи, поскольку они оба являются продуктами Microsoft, переписывая их в SQL Server. должен быть наиболее трудосберегающим способом.
1. Предварительные условия для перезаписи:
в системе установлен SQL Server2000 и установлен пакет обновления SP3; рекомендуется использовать редактор, поддерживающий редактирование обычного текста и имеющий отображение номеров строк. конечно, FrontPage2003 тоже можно использовать, но отображение номера строки в предыдущей версии было не очень простым в использовании.
Требования к личным способностям: уметь понимать базовый синтаксис ASP, получать доступ к операциям с базой данных и базовым операциям SQL Server Enterprise Manager.
2. Вообще говоря, есть две ситуации подготовки базы данных
:
1. В программе предусмотрен формат базы данных SQL: имеется файл MDF или файл сценария SQL (суффикс .sql) для создания базы данных SQL.
Если есть файл mdf, вы можете прикрепить его напрямую с помощью Enterprise Manager. Если предоставляется файл сценария sql, используйте Enterprise Manager для самостоятельного создания базы данных sql, а затем используйте анализатор запросов в Enterprise Manager для запуска. скрипт для создания таблицы базы данных.
Созданную таким образом базу данных в переписывании практически не требуется.
2. Большинство из них не предоставляют базы данных SQL или файлы сценариев. В настоящее время вам придется делать это самостоятельно. Это также основная проблема, которую решает наш пост. Обычно такая программа предоставляет базу данных доступа, поэтому вы можете использовать Enterprise Manager для импорта базы данных доступа. После импорта вам необходимо переписать следующие вещи:
По сравнению с исходным доступом перепишите следующую часть:
(1) Таблицы базы данных SQL не имеют автоматических полей, поэтому исходные автоматические поля в доступе преобразуются в обычные поля, и их необходимо вручную изменить на тип идентификации с шагом 1.
(2) Для всех полей времени, если определено значение по умолчанию, оно должно быть now() и должно быть изменено на getdate().
(3) Значения по умолчанию исходных полей, как правило, не вводятся автоматически, и их необходимо добавлять вручную к полям исходной таблицы.
(4) Из-за разных баз данных многие типы полей доступа и sql изменяются после преобразования. Например, исходное поле «ли» будет преобразовано в битовое или целочисленное, поле memo будет преобразовано в длинный текст, текстовое поле будет преобразовано в формат bit или int. конвертируется в varchar и т. д., вообще говоря, на работу программы это не повлияет. Если возникнет проблема, мы обсудим ее в разделе переписывания программ ниже.
(5) Если вы хотите использовать программу для SQL, которая использует хранимые процедуры, у вас должен быть способ создать базу данных SQL в самой программе: иметь собственный файл базы данных SQL или сценарий sql, если нет, используйте импорт; Метод базы данных доступа не может создать хранимую процедуру, поэтому лучше отказаться от этой версии программы для SQL, используйте ту же версию программы для доступа, импортируйте базу данных доступа, а затем используйте следующий метод перезаписи, чтобы изменить ее на версию SQL запрограммируйте себя.
3. Чтобы переписать строку подключения,
обратитесь к этому разделу Dongwang, который посвящен доступу и SQL соответственно.
ДимКоннСтр
Если IsSqlDataBase = 1 Тогда
'Параметры подключения к базе данных sql: имя базы данных, пароль пользователя, имя пользователя, имя подключения (используйте локально, используйте IP за границей)
Dim SqlDatabaseName, SqlPassword, SqlUsername, SqlLocalName
SqlDatabaseName = "dvbbs7"
СклПароль = ""
SqlUsername = "dvbbs"
SqlLocalName = "(локальный)"
ConnStr = "Provider = Sqloledb; Идентификатор пользователя = " & SqlUsername & "; Пароль = " & SqlPassword & "; Начальный каталог = " & SqlDatabaseName & "; Источник данных = " & SqlLocalName & ";"
Еще
«Для бесплатных пользователей измените адрес базы данных и имя базы данных в каталоге данных соответствующим образом, например, измените dvbbs6.mdb на dvbbs6.asp.
'http://www.downcodes.com/
БД = "данные/fengerqingqing.mdb"
ConnStr = "Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = " & Server.MapPath(db)
Конец, если
При ошибке Возобновить Далее
Установить conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
Конечно, если вы используете SQL, оператор доступа можно удалить, то есть после else и перед возобновлением следующей ошибки он становится таким:
Dim ConnStr
'Параметры подключения к базе данных sql: имя базы данных, пароль пользователя, имя пользователя, имя подключения (используйте локально, используйте IP за границей)
Dim SqlDatabaseName, SqlPassword, SqlUsername, SqlLocalName
SqlDatabaseName = "dvbbs7"
СклПароль = ""
SqlUsername = "dvbbs"
SqlLocalName = "(локальный)"
ConnStr = "Provider = Sqloledb; Идентификатор пользователя = " & SqlUsername & "; Пароль = " & SqlPassword & "; Начальный каталог = " & SqlDatabaseName & "; Источник данных = " & SqlLocalName & ";"
При ошибке Возобновить Далее
Установить conn = Server.CreateObject("ADODB.Connection")
conn.open ConnStr
также можно записать более кратко и так:
Установить conn = Server.CreateObject("ADODB.Connection")
conn.open "Поставщик = Sqloledb; Идентификатор пользователя = sa; Пароль = 1234567; Исходный каталог = dvbbs7; Источник данных = (локальный);"
Перепишите имя базы данных, источник данных, пользователя и пароль в соответствии с вашей реальной ситуацией.
4. Переписывание программы.
Возможны две ситуации:
1. Если вам повезло и вы получили программу для SQL, то, если в описанном выше процессе создания базы данных нет проблем, программа в принципе может работать. Если есть ошибка, это просто ошибка в самой программе. его модификация не обсуждается в этом посте. Содержание не будет подробно описываться.
2. В большинстве случаев сама программа предназначена для доступа. Отличие от программы для SQL заключается в основном в используемых в программе операторах SQL-запросов. Обратите внимание, что операторы SQL-запросов являются неотъемлемой частью приложений баз данных. Синтаксис, используемый программами, будь то For SQL или For Aceess, примерно одинаков, но есть некоторые тонкие различия, которые делают программу не универсальной. что нам понадобится Основное содержание модификации. Части, которые обычно необходимо изменить, следующие:
(1) Проблема с функцией времени: функция времени в базе данных SQL отличается от функции доступа. Наиболее распространенной функцией является получение текущего времени. Доступ — это now(), а SQL — getdate(). Поэтому, где бы функция now() ни использовалась в предложенииwhere, ее необходимо изменить на getdate(); обратите внимание, что функция now() также должна использоваться в самой программе asp. Любая функция now(), которая не используется в базе данных. запросы или операторы выполнения. Обязательно не меняйте его.
(2) Функция сравнения времени: dateiff('d','time1','time2') Это формат, используемый для запросов доступа. Эти кавычки в SQl должны быть удалены. В то же время перед и можно добавить #. после формата времени. Это тоже нужно удалить. Аналогично, это также относится к оператору sql, и оператор asp должен оставаться неизменным.
(3) Представление нулевого значения. В Access оценка нулевого значения обычно выражается с помощью знака ="", но в SQL это часто происходит неправильно. Если вы столкнулись с ошибкой или программа не работает нормально, вы можете изменить это. судить так: где (имя пустое)
(4) Истинное и ложное оценочное суждение: вы можете использовать =true и =false для оценки доступа, но это приведет к ошибке в SQL. Поэтому в SQL-запросе или операторе выполнения этот тип суждения следует изменить на =1. и =0 соответственно. Примечание. Хотя некоторые программы пишут = «true», из-за кавычек это поле имеет символьный тип. Вы не можете изменить его на =1, просто оставьте его как есть.
Выше перечислены наиболее распространенные места для переписывания, а есть и менее распространенные. Если вы столкнетесь с ними, вы можете ответить здесь, чтобы обсудить их.
5. Отладка программы.
Рекомендуется использовать редактор с номерами строк, так как описанную выше переписку вряд ли можно осуществить прямым поиском в исходном коде программы, да и найти все это сложно.
Обычно я использую следующий метод: после завершения перезаписи базы данных программа отлаживается напрямую. После возникновения ошибки просмотрите сообщение об ошибке и найдите строку кода соответствующего файла. Однако основная причина часто отсутствует. Эта строка. Например, оператор ошибки: conn.execute(sql) , но само это предложение не является неправильным. Причиной ошибки является строка sql внутри. Затем посмотрите, как генерируется строка sql, и измените ее в соответствии с ней. к методу модификации программы, упомянутому выше.
После импорта базы данных автоматически добавляемые поля необходимо переписать, а длину всех числовых типов увеличить. Лучше всего использовать десятичные.
Все значения по умолчанию потеряны. В основном числовые типы и типы дат.
Все функции now(), time(), date() следует заменить на getdate().
Все dateiff('d', time1, time2) следует изменить на dateiff(day, time1, time2).
Возможно, некоторые типы true/false не могут быть использованы и их следует изменить на 1/0.
Тип примечания должен использоваться через cast(столбец как varchar).
CursorType необходимо изменить на 1, то есть первый числовой параметр при открытии базы данных должен быть задан как 1, иначе запись может отобразиться не полностью.
Припреобразовании isnull(rowname) в rowname = null
тип автоматической нумерации в базе данных ACCESS не устанавливается на тип автоматической нумерации SQL Server. Нам необходимо добавить идентификатор в оператор создания SQL, чтобы указать автоматическую нумерацию.
Во время преобразования SQL SERVER по умолчанию использует тип smalldatetime для полей, связанных с датой. Лучше всего изменить его на тип datetime, поскольку тип datetime имеет больший диапазон, чем тип smalldatetime. Иногда при использовании типа smalldatetime преобразование завершается неудачно, но при использовании типа datetime преобразование проходит успешно.
Операторы SQL, используемые для работы с двумя базами данных, не совсем одинаковы. Например: при удалении записей в базе данных ACCESS используйте: «delete * from user, где id=10», а при удалении базы данных SQL SERVER используйте: « удалить пользователя с идентификатором = 10».
Функции даты различны. При обработке базы данных ACCESS можно использовать такие функции, как date() и time(). Однако при обработке базы данных SQL SERVER используются только такие функции, как dateiff и dateadd. можно использовать, но не date(), time() и другие функции.
При обработке базы данных ACCESS некоторые функции VB, такие как функция cstr(), можно использовать непосредственно в операторе sql, но при обработке базы данных SQL SERVER их использовать нельзя.
В следующей таблице сравнивается база данных Microsoft Access (база данных Microsoft Access: совокупность данных и объектов, таких как таблицы, запросы или формы, относящиеся к определенной теме или цели. Для управления данными используется ядро базы данных Microsoft Jet.) и проект Microsoft Access (проект Microsoft Access: файлы доступа, которые подключаются к базе данных Microsoft SQL Server и используются для создания клиент-серверных приложений. Файл проекта не содержит никаких данных или объектов на основе данных (таких как таблицы или представления). Характеристики полей типов данных. Типы данных включают Boolean, Integer, Long, Currency, Single, Double, Date, String и Variant (по умолчанию)).
Тип данных Microsoft Access Тип данных SQL Server Да/Нет (Тип данных Да/Нет: тип данных поля, используемый для полей только с двумя возможными значениями (например, Да или Нет, Истина или Ложь). Нулевые значения не являются разрешен.) бит (битовый тип данных: в проектах Access — тип данных, который хранит значение 1 или 0. Принимает целочисленные значения, отличные от 1 и 0, но всегда интерпретирует их как 1.)
Число (Числовой тип данных: тип данных поля в базах данных Microsoft Access, используемый для числовых данных, которые будут использоваться в математических операциях. Однако, если вы хотите отображать или вычислять денежные значения, вам следует использовать тип данных «Валюта».) (байт). tinyint (тип данных tinyint: однобайтовый (8-битный) тип данных в проекте Access, используемый для хранения целых чисел от 0 до 255.)
Число (целое) smallint (тип данных smallint: 2-байтовый (16-битный) тип данных в проекте Access, сохраняющий числа от -2^15(-32768) до 2^15-1(32767) .)
Число (длинное целое число) int (тип данных int: 4-байтовый (32-битный) тип данных в проекте Access, сохраняющий значения от -2^31(-2147483648) до 2^31-1(2147483647) числа. .)
Число (тип с плавающей запятой одинарной точности) вещественное (действительный тип данных: в проектах Access — приблизительный числовой тип данных с точностью до 7 цифр, положительные значения в диапазоне от 1,18E-38 до 3,40E+38, отрицательные значения. диапазон значений составляет примерно от -1,18E-38 до -3,40E+38, а также может быть равен 0).
(Нет эквивалентного типа данных) bigint (тип данных bigint: 8-байтовый (64-битный) тип данных в проекте Access, хранящийся между -2^63 (-9 223 372 036 854 775 808) и 2 ^ 63-1 (9 223 372 036 854 775 807) ).
Число (с плавающей запятой двойной точности) float (тип данных float: В проектах Access — приблизительный числовой тип данных с точностью до 15 цифр. Диапазон хранимых положительных значений составляет примерно от 2,23E-308 до 1,79E+ 308, диапазон отрицательных значений составляет примерно от -2,23E-308 до -1,79E+308, он также может быть равен 0).
Валюта (тип данных «валюта»: тип данных в базах данных Microsoft Access, используемый для расчетов, связанных с валютой, или расчетов с фиксированной точкой, где точность чрезвычайно важна.) Деньги (тип данных денег: в проектах Access, используемый для хранения валюты. Данные тип значения, диапазон значений от -922 337 203 685 477,5707 до 922 337 203 685 477,5807, точность — одна десятитысячная денежной единицы.)
smallmoney (тип данных smallmoney: тип данных, который хранит значения валют в проекте Access, диапазон значений) составляет от - 214 748,3648 до 214 748,3647 с точностью до одной десятитысячной денежной единицы. При отображении значений smallmoney они округляются до двух десятичных знаков.)
Десятичный/числовой (десятичный тип данных (база данных Access): точный числовой тип данных, используемый для хранения значений от -10^38-1 до 10^38-1. Числовой диапазон (максимальное общее количество цифр) и точность (десятичная точка) могут указывается Максимальное количество цифр справа). ) decimal (десятичный тип данных (проект Access): точный числовой тип данных, используемый для хранения значений от -10^38-1 до 10^38-1. Числовой диапазон (максимум). общее количество цифр) можно указать число) и точность (максимальное количество цифр справа от десятичной точки).)
числовой (числовой тип данных: в проектах Access — точный числовой тип данных со значениями от -10^38)
.От -1 до 10^38-1. Можно указать числовой диапазон (максимальное общее количество цифр) и точность (максимальное количество цифр справа от десятичной точки).
Дата/время (тип данных «Дата/время»: тип данных в базе данных Access, используемый для хранения информации о дате и времени.) datetime (тип данных datetime: в проектах Access тип данных даты и времени в диапазоне от 1753). С 1 января по 31 декабря 9999 года точность составляет три сотых секунды или 3,33 миллисекунды)
smalldatetime (тип данных smalldatetime: тип данных даты и времени в проекте Access, точность не так хороша, как datetime time. Data) тип. Диапазон значений данных — с 1 января 1900 года по 6 июня 2079 года с точностью до одной минуты).
AutoNumber (тип данных «AutoNumber»: тип данных поля в базе данных Microsoft Access, который автоматически сохраняет уникальный номер для каждой записи при добавлении новой записи в таблицу. Могут быть сгенерированы три типа чисел: порядковый номер, случайное число и синхронное число). идентификатор репликации ) (инкрементирующий) int (тип данных int: 4-байтовый (32-битный) тип данных в проекте Access, хранящийся по адресу -2^31 (-2147483648) и 2 ^31-1(2147483647)) ( атрибут Identity определен).
Текст (тип данных «Текст»: тип данных поля в базе данных Microsoft Access. Тип данных «Текст» может содержать до 255 символов или меньшее количество символов, указанное свойством FieldSize.) (n) varchar( n ) (тип данных varchar(n): тип данных переменной длины в проектах Access с максимальной длиной 8000 символов ANSI.)
nvarchar(n) (тип данных nvarchar(n): в проектах Access данные переменной длины Тип, который может содержать до 4000 символов Юникода. Символы Юникода занимают два байта на символ и поддерживают все международные символы.)
Примечания (тип данных «Примечания»: тип данных поля в базе данных Microsoft Access. Поле «Примечания» может содержать до 65 535 символов.) Текст (тип данных «текст»: тип данных переменной длины в проекте Access, может храниться до 2^31-1(2 147 483 647) символов; длина по умолчанию — 16).
Объект OLE (тип данных «Объект OLE»: один из типов данных для полей, используемых в объектах, созданных в других приложениях, которые можно связать или внедрить (вставить) в базу данных Access.) image (тип данных изображения: В Access В проекте Тип данных переменной длины может хранить до 2 ^ 31-1 (2 147 483 647) байт двоичных данных. Тип данных изображения используется для хранения BLOB (больших двоичных объектов), таких как изображения, документы, звуки и файлы. скомпилированный код.)
Идентификатор синхронной репликации (также известный как глобальный уникальный идентификатор (GUID): в базах данных Access — 16-байтовое поле, используемое для установки уникального идентификатора для синхронной репликации. GUID используются для идентификации реплик, наборов реплик, таблиц, записей и других объектов. База данных Access, GUID относится к идентификатору синхронной репликации (GUID)) uniqueidentifier (тип данных uniqueidentifier: в проектах Access 16-байтовый глобальный уникальный идентификатор (GUID).) (Применимо только к SQL Server 7.0 или более поздней версии).
гиперссылка (тип данных «гиперссылка»): тип данных поля базы данных Access, в котором хранятся адреса гиперссылок. Адреса могут содержать до четырех частей и записываются в следующем синтаксическом формате: displaytext#address#subaddress#.) char (тип данных char : в проектах Access — тип данных фиксированной длины, который может содержать до 8000 символов ANSI,
nchar (тип данных nchar: в проектах Access — тип данных фиксированной длины, который может содержать до 4000 символов Юникода. Каждый из символов Unicode). символ занимает два байта и поддерживает все международные символы), varchar, nvarchar (атрибут Hyperlink имеет значение «Да»).
(Нет эквивалентного типа данных) varbinary (тип данных varbinary: тип данных переменной длины в проектах Access, который может хранить до 8000 байт двоичных данных.)
(Нет эквивалентного типа данных) smallint (тип данных smallint: 2-байтовый (16-битный) тип данных в проекте Access, хранящийся между -2^15(-32,768) и 2^15-1(32,767) ).
(Нет эквивалентного типа данных) временная метка (тип данных временной метки: в проектах Access — тип данных, который автоматически обновляется каждый раз при вставке или обновлении строки. Значение в столбце временной метки — это не данные даты и времени, а двоичные (8) или varbinary. (8), указывающий порядок модификации данных).
(нет эквивалентного типа данных) charchar
(Нет эквивалентного типа данных) sql_variant (тип данных sql_variant: тип данных в проекте Access, который хранит значения нескольких типов данных, отличных от типов text, ntext, image, timestamp и sql_variant. В столбцах, параметрах, переменных или используемых в возвращаемое значение пользовательской функции).
(Нет эквивалентного типа данных) Определяемый пользователем (Тип данных, определяемый пользователем: в базе данных Microsoft SQL Server определение типа данных, содержащихся в столбце, может определяться пользователем с использованием существующих определений типов данных системы. Правила и значения по умолчанию могут быть привязаны только к определяемому пользователем типу данных.
Примечание. В проекте Access или базе данных SQL Server префикс «n» означает «страна/регион», что означает, что этот тип данных поддерживает Юникод. . В базах данных Access все текстовые столбцы по умолчанию поддерживают Юникод.
Проблемы, на которые следует обратить внимание при преобразовании ACCESS в SQL
2006-2-13 16:01:20
Многие друзья хотят использовать методы программирования баз данных SQL2000, но они страдают от того, что изучают ACCESS и имеют лишь небольшое представление о SQL. Здесь я предоставляю вам следующую ссылку: Методы и меры предосторожности для преобразования ACCESS в SQL2000. Прежде всего, я говорю о преобразовании между ACCESS2000 и SQL2000. Остальные я еще не пробовал, надеюсь, вы сможете поэкспериментировать дальше, и должен быть какой-то способ;
2. Метод конвертации
1. Откройте «Источник базы данных» в разделе «Администрирование» в разделе «Панель управления»;
2. Нажмите «Добавить», чтобы добавить новый источник данных, и выберите «DriverdomicrosoftAccess» в столбце выбора.
(*.mdb)», после завершения появится окно.
Введите имя, которое хотите написать, в «Источник базы данных». Я назвал его «ABC», что указывает на то, что заполнять не нужно. Затем нажмите на выделение ниже. чтобы найти адрес и выбор вашей базы данных (обратите внимание, сначала создайте резервную копию базы данных ACCESS), а затем подтвердите.
Здесь создается источник данных, и остается только преобразовать.
3. Откройте SQL2000 Enterprise Manager, войдите в базу данных и создайте новую пустую базу данных «ABC»;
4. Выберите вновь созданную базу данных, щелкните правой кнопкой мыши, выберите «Импортировать данные» в разделе «Все задачи» и нажмите «Далее», чтобы продолжить;
5. Выберите «DriverdoMicrosoft Access (*.mdb)» в раскрывающемся списке источника базы данных. В «Пользовательский/системный DSN» выберите только что добавленный «ABC» и нажмите «Далее»;
6. «Цель» изменять не нужно. Выберите сервер (обычно это ваш собственный компьютер «локальный», вы также можете выбрать адрес сервера или адрес локальной сети, чтобы определить, могут ли ваши разрешения работать), «Использовать аутентификацию WINDOWS» означает использование. Для вашей собственной операции идентификации системного администратора для операций веб-сайта можно использовать «Использовать проверку операции идентификации SQL», и последнее рекомендуется;
7. После выбора «Использовать проверку подлинности SQL» введите свое имя пользователя и пароль. Я выбрал системные номера по умолчанию «sa» и «****». Для базы данных выберите вновь созданный «ABC» и нажмите. «Следующий шаг»;
8. На этом этапе есть два варианта: «Копировать таблицы и представления из источника данных» и «Использовать команду запроса, чтобы указать данные для переноса». Выберите первый вариант и нажмите «Далее», чтобы продолжить;
9. Здесь появятся таблицы вашей собственной базы данных ACCESS. Нажмите «Выбрать все» и перейдите к следующему шагу;
10. «Мастер импорта/экспорта DTS», убедитесь, что выбран «Выполнить сейчас», и нажмите «Далее».
11. Нажмите «Готово», чтобы продолжить;
12. На этом этапе вы увидите, что ваши данные импортируются в SQL2000. Когда появятся слова «Таблицы XXX были успешно импортированы в базу данных» и перед всеми таблицами появятся зеленые галочки, это означает, что все данные были импортированы.
возникла
проблема или перед таблицей появился красный *, это означает, что таблица не была успешно импортирована. Вам необходимо вернуться назад и проверить правильность вашей операции.
. Модификация данных
1. Поскольку в SQL2000 нет «автоматической нумерации», поля, которые вы установили с помощью «автоматической нумерации», станут непустыми полями. В этом случае вам необходимо вручную изменить эти поля и выбрать «Да» для «Отметить». начальное число — «1», приращение — «1»,
2. Кроме того, после преобразования ACCESS2000 в SQL2000 поля с исходным атрибутом «да/нет» будут преобразованы в непустой «бит». На этом этапе вам необходимо изменить его на нужный атрибут;
3. Кроме того, каждый должен обратить внимание на понимание функций времени. Между ACCESS и SQL существует много различий.
4. Сопутствующие вопросы на местах
1. При преобразовании типа автоматической нумерации в базе данных ACCESS sqlserver не установил для него тип автоматической нумерации. Нам необходимо добавить идентификатор в оператор создания SQL, чтобы указать автоматическую нумерацию!
2. Во время преобразования SQLSERVER по умолчанию использует тип smalldatetime для полей, связанных с датой. Лучше всего изменить его на тип datetime, поскольку тип datetime имеет больший диапазон, чем тип smalldatetime. Я столкнулся с такой ситуацией. При использовании типа smalldatetime преобразование не удалось, но при использовании типа datetime преобразование прошло успешно.
3. Операторы SQL, используемые для работы с двумя базами данных, не совсем одинаковы. Например: при удалении записей в базе данных ACCESS используйте: «delete*fromuserwhereid=10», а при удалении базы данных SQLSERVER используйте: «deleteuserwhereid=». 10 дюймов.
4. Функции даты отличаются. При обработке базы данных ACCESS можно использовать такие функции, как date() и time(). Однако при обработке базы данных SQLSERVER можно использовать только такие функции, как dateiff и dateadd, но не date. (), time( ) и другие функции.
5. При обработке базы данных ACCESS некоторые функции VB, такие как функция cstr(), можно использовать непосредственно в операторе sql, но при обработке базы данных SQLSERVER их использовать нельзя.
5. Связанные с операторами проблемы, автоматическое добавление полей необходимо переписать. Поле автоматической нумерации, которое часто используется в доступе, не является автоматически увеличивающимся целым числом после его импорта в mssql. Его необходимо установить вручную. Измените «нет» импортированного поля автоматической нумерации на «да» и «начальное число». . и «сумма приращения» равны «1» и становятся автоматическим числом.
Все значения по умолчанию потеряны. В основном числовые типы и типы дат
Все функции now(), time() и date() должны быть заменены на getdate().
Все dateiff('d',time1,time2) должны быть изменены на dateiff(day,time1,time2)
Все dateiff('ww',time1,time2) должны быть изменены на dateiff(week,time1,time2)
Все dateiff('d',time1,time2) должны быть изменены на dateiff(day,time1,time2)
В mssqlserver есть много зарезервированных слов, недоступных в доступе. При импорте данных в mssql возникают проблемы. При импорте mssql автоматически добавляет «[имя поля]» к этим полям (включая имена таблиц в базе данных). Поэтому вам необходимо изменить свой скрипт и добавить соответствующие имена полей (или имена таблиц или изменить их). имя поля в зарезервированное слово, отличное от mssql
При использовании доступа для использования времени всем нравится использовать операторы SQL, такие как "select*fromaaaa whiletime="&now()". Однако в mssql нет функции "now()", но используется "getdate()", поэтому , «now()» во всех операторах sql необходимо заменить на «getdate()».
Функции даты различны. При обработке базы данных ACCESS можно использовать такие функции, как date() и time(), но для
При обработке базы данных SQLSERVER можно использовать только такие функции, как dateiff и dateadd, но нельзя использовать такие функции, как date() и time().
Во время преобразования SQLSERVER по умолчанию использует тип smalldatetime для полей, связанных с датой. Нам лучше изменить его на тип datetime.