В следующем примере, в таблице Customer колонка CustID создана с типом данных глобального идентификатора, со значением по умолчанию генерируемым функцией NEWID. Уникальное значение для колонки будет генерироваться для каждой новой и существующей строки:
CREATE TABLE Customer
(CustID uniqueidentifier NOT NULL DEFAULT NEWID(),
CastName varchar (30) NOT NULL)
Когда вы создаёте объекты в базе данных, очень важно сохранять все объявления объектов в скриптовом файле.
Вы можете использовать SQL Server Enterprise Manager для документирования существующей структуры базы (схемы) данных с помощью генерирования одного или нескольких Transact-SQL скриптов. Эти скрипты содержат описание операторов, использованных для создания базы данных и объектов.
Схема сгенерированная как скрипт Transact-SQL может использоваться для:
Обеспечение резервирования, что позволит пользователю пересоздать все объекты;
Создать или обновить скрипт разработчика базы данных;
Создать тестовое окружение разработчика из существующей схемы;
Тренировать новых работников.
Вы можете генерировать:
Содержимое базы данных в один скрипт файл;
Только схему таблиц для одной, нескольких или всех таблиц в базе данных в один или несколько файлов.
Схему таблиц или индексов в один или более файлов, встроенные процедуры в другой файл, значения по умолчанию и роли в отдельный файл.
Следующая рекомендуемая практика поможет вам создать типы данных и таблицы:
Указывайте соответствующие типы данных и размер;
Когда пишите оператор CREATE TABLE, сразу же указывайте характеристики колонок;
После создания базы данных и объектов генерируйте скрипт, который позволит вам легко воссоздать базу данных и её объекты.
Следующий пример проверяет на наличие в базе данных ClassNorthwind типа postalcode. Если он существует, то удаляется и создаётся заново:
USE ClassNorthwind
IF EXISTS (SELECT domain_name FROM information_schema.domains
WHERE domain_schema = 'dbo' AND domain_name = 'postalcode')
EXEC sp_droptype postalcode
GO
EXEC sp_addtype postalcode, 'nvarchar(10)' , NULL
GO
В следующем примере происходит проверка типов:
USE ClassNorthwind
SELECT domain_name
FROM information_schema.domains
ORDER BY domain_name
GO
Результат выполнения этого кода:
domain_name
--------------------------------------------------------------------------postalcode
Создайте ещё следующие типы, которые нам пригодятся при создании таблицы:
USE ClassNorthwind
IF EXISTS (SELECT domain_name FROM information_schema.domains
WHERE domain_schema = 'dbo' AND domain_name = 'city')
EXEC sp_droptype city
IF EXISTS (SELECT domain_name FROM information_schema.domains
WHERE domain_schema = 'dbo' AND domain_name = 'region')
EXEC sp_droptype region
IF EXISTS (SELECT domain_name FROM information_schema.domains
WHERE domain_schema = 'dbo' AND domain_name = 'country')
EXEC sp_droptype country
GO
EXEC sp_addtype city, 'nvarchar(15)', NULL
EXEC sp_addtype region, 'nvarchar(15)', NULL
EXEC sp_addtype country, 'nvarchar(15)', NULL
GO
/* Display results */
SELECT domain_name
FROM information_schema.domains
ORDER BY domain_name
GO
Для создания таблицы воспользуемся следующим скриптом:
USE ClassNorthwind
IF OBJECT_ID('dbo.Employees') IS NOT NULL
DROP TABLE dbo.Employees
GO
CREATE TABLE dbo.Employees (
EmployeeID int IDENTITY (1, 1) NOT NULL ,
LastName nvarchar (20) NOT NULL ,
FirstName nvarchar (10) NOT NULL ,
Title nvarchar (30) NULL ,
TitleOfCourtesy nvarchar (25) NULL ,
BirthDate datetime NULL ,
HireDate datetime NULL ,
Address nvarchar (60) NULL ,
City city ,
Region region ,
PostalCode postalcode ,
Country country ,
HomePhone nvarchar (24) NULL ,
Extension nvarchar (4) NULL ,
Photo image NULL ,
Notes ntext NULL ,
ReportsTo int NULL ,
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.