Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - как посмотреть скрипт создания таблицы с индексами в ms sql

Ответить
Настройки темы
MSFT SQL Server - как посмотреть скрипт создания таблицы с индексами в ms sql

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый вечер. Извините за возможно глупый вопрос.

Подскажите решение следующей задачи:

как посмотреть скрипт создания таблицы с индексами в ms sql server 2005 express edition

Отправлено: 00:23, 16-03-2013

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


На таблице правой кнопкой - создать сценарий - используя Create. Делать, естественно, в SSMS.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 10:26, 16-03-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Delirium:
На таблице правой кнопкой - создать сценарий - используя Create. Делать, естественно, в SSMS. »
Выполнив выше приведенные манипуляции получил скрипт на создание таблицы-кучи, а не скрипт создания таблицы с индексами.

Отправлено: 15:23, 16-03-2013 | #3


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


akasha9,
Цитата akasha9:
Выполнив выше приведенные манипуляции получил скрипт на создание таблицы-кучи, а не скрипт создания таблицы с индексами. »
Поясните пожалуйста ответ.
Вы имеете ввиду CREATE INDEX (Transact-SQL) или что то другое?
Adventure Works for SQL Server 2012 (190Мб) -- учебно-тренировочная БД у меня развернется только через полчаса.
Примеры запросов с MSDN используют ее.
Предлагаю так же использовать её, чтобы всем было понятно, о чем идет речь.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 16:08, 16-03-2013 | #4


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата lxa85:
akasha9,
Цитата akasha9:
Выполнив выше приведенные манипуляции получил скрипт на создание таблицы-кучи, а не скрипт создания таблицы с индексами. »
Поясните пожалуйста ответ.
Вы имеете ввиду CREATE INDEX (Transact-SQL) или что то другое? »
У меня есть готовая база данных с созданными таблицами мне нужно отскриптовать эти готовые таблицы так чтобы скрипт помимо создания таблицы показывал еще и индексы которые использует данная таблица.

То есть в итоге должно быть что то вроде этого но еще и с указанием используемых индексов:

USE [DBWorks]
GO
/****** Object: Table [dbo].[Table_1] ****** /
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table_1](
[ID] [int] IDENTITY(1,1) NOT NULL,
[DTM] [datetime] NOT NULL,
[NKA] [smallint] NULL,
[LKA] [smallint] NULL,
[UM] [real] NULL,
[AZ] [real] NULL,
[NMS_PT1] [smallint] NULL,
[NMS_VT1] [smallint] NULL,
[NMS_PT2] [smallint] NULL,
[NMS_VT2] [smallint] NULL,
[UP1] [real] NULL,
[UV1] [real] NULL,
[UP2] [real] NULL,
[UV2] [real] NULL,
[RP1] [float] NULL,
[RV1] [float] NULL,
[RP2] [float] NULL,
[RV2] [float] NULL,
[VP1] [float] NULL,
[VV1] [float] NULL,
[VP2] [float] NULL,
[VV2] [float] NULL,
[NBL] [smallint] NULL
) ON [PRIMARY]

Последний раз редактировалось akasha9, 16-03-2013 в 17:25.


Отправлено: 17:14, 16-03-2013 | #5


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Изображения
Тип файла: png sqlindex.png
(32.3 Kb, 7 просмотров)

akasha9, На примере вышеупомянутой БД, т.к. для нее есть скрипты создания индекса.
Загрузил 2008R2, установил. На основе примере "Е. Создание индекса представления",
выполнил запрос

Код: Выделить весь код
USE AdventureWorks2008R2;
GO
--Set the options to support indexed views.
SET NUMERIC_ROUNDABORT OFF;
SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT,
    QUOTED_IDENTIFIER, ANSI_NULLS ON;
GO
--Create view with schemabinding.
IF OBJECT_ID ('Sales.vOrders', 'view') IS NOT NULL
DROP VIEW Sales.vOrders ;
GO
CREATE VIEW Sales.vOrders
WITH SCHEMABINDING
AS
    SELECT SUM(UnitPrice*OrderQty*(1.00-UnitPriceDiscount)) AS Revenue,
        OrderDate, ProductID, COUNT_BIG(*) AS COUNT
    FROM Sales.SalesOrderDetail AS od, Sales.SalesOrderHeader AS o
    WHERE od.SalesOrderID = o.SalesOrderID
    GROUP BY OrderDate, ProductID;
GO
--Create an index on the view.
CREATE UNIQUE CLUSTERED INDEX IDX_V1 
    ON Sales.vOrders (OrderDate, ProductID);
GO
--This query can use the indexed view even though the view is 
--not specified in the FROM clause.
SELECT SUM(UnitPrice*OrderQty*(1.00-UnitPriceDiscount)) AS Rev, 
    OrderDate, ProductID
FROM Sales.SalesOrderDetail AS od
    JOIN Sales.SalesOrderHeader AS o ON od.SalesOrderID=o.SalesOrderID
        AND ProductID BETWEEN 700 and 800
        AND OrderDate >= CONVERT(datetime,'05/01/2002',101)
GROUP BY OrderDate, ProductID
ORDER BY Rev DESC;
GO
--This query can use the above indexed view.
SELECT  OrderDate, SUM(UnitPrice*OrderQty*(1.00-UnitPriceDiscount)) AS Rev
FROM Sales.SalesOrderDetail AS od
    JOIN Sales.SalesOrderHeader AS o ON od.SalesOrderID=o.SalesOrderID
        AND DATEPART(mm,OrderDate)= 3
        AND DATEPART(yy,OrderDate) = 2002
GROUP BY OrderDate
ORDER BY OrderDate ASC;
GO

Обратить внимание на
--Create an index on the view.
CREATE UNIQUE CLUSTERED INDEX IDX_V1
ON Sales.vOrders (OrderDate, ProductID);

Смотрим базу, находим вид Sales.vOrders, раскрываем индексы. ПКМ - создать сценарий (см. рисунок)
Получаем
следующий результат

Код: Выделить весь код
USE [AdventureWorks2008R2]
GO

SET ARITHABORT ON
GO

SET CONCAT_NULL_YIELDS_NULL ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_NULLS ON
GO

SET ANSI_PADDING ON
GO

SET ANSI_WARNINGS ON
GO

SET NUMERIC_ROUNDABORT OFF
GO

/****** Object:  Index [IDX_V1]    Script Date: 03/16/2013 18:01:13 ******/
CREATE UNIQUE CLUSTERED INDEX [IDX_V1] ON [Sales].[vOrders] 
(
	[OrderDate] ASC,
	[ProductID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
GO

Что и требовалось получить.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:52, 16-03-2013 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MSFT SQL Server - как посмотреть скрипт создания таблицы с индексами в ms sql

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
MSFT SQL Server - MS SQL Express и MS SQL Standart Negativ Программирование и базы данных 1 25-12-2012 08:12
Тормозит 1С (MS SQL). Как диагностировать? Tonny_Bennet Microsoft Windows NT/2000/2003 17 15-12-2012 16:07
Использование - MS SQL server cal 2005 для доступа к SQL SRV 2008 xaustov Лицензирование продуктов Microsoft 1 20-01-2012 17:55
как посмотреть что делает скрипт? vlasoft Хочу все знать 1 01-10-2011 23:12
Разное - [решено] *SQL* | MS SQL-2005 как узнать зависимые таблицы pva Программирование и базы данных 1 21-09-2009 10:55




 
Переход