Advertisement
Ladies_Man

#DB Lab7 (Indices) COMPLETE

Nov 17th, 2015
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 2.44 KB | None | 0 0
  1. --Лабораторная работа №7. Представления и индексы
  2.  
  3. --1.Создать представление на основе одной из таблиц задания 6.
  4. --2.Создать представление на основе полей обеих связанных таблиц задания 6.
  5. --3.Создать индекс для одной из таблиц задания 6, включив в него дополнительные неключевые поля.
  6. --4.Создать индексированное представление.
  7.  
  8.  
  9. --run on launched lab6!
  10. use lab6;
  11. go
  12.  
  13. --1.Создать представление на основе одной из таблиц задания 6.
  14. if OBJECT_ID(N'bookshelf', N'V') is not null
  15.     drop view bookshelf;
  16. go
  17. create view bookshelf as
  18.     select *
  19.     from books
  20.     where year between 1930 and 1950;
  21. go
  22.  
  23. --select * from bookshelf;
  24. go
  25.  
  26.  
  27. --2.Создать представление на основе полей обеих связанных таблиц задания 6.
  28. if OBJECT_ID(N'bookshelf_joined', N'V') is not null
  29.     drop view bookshelf_joined;
  30. go
  31. create view bookshelf_joined as
  32.     select
  33.         b.name as book_name,
  34.         w.firstname + ' ' + w.lastname as author,
  35.         b.year
  36.     from books b
  37.     inner join writers w
  38.         on b.bwid = w.wid;
  39. go
  40.  
  41. select * from bookshelf_joined;
  42. go
  43.  
  44.  
  45. --3.Создать индекс для одной из таблиц задания 6, включив в него дополнительные неключевые поля.
  46. if EXISTS (select name from sys.indexes
  47.             where name = N'ix_books_bid_year')
  48.     drop index ix_books_bid_year on books;
  49. go
  50. create index ix_books_bid_year
  51.     on books (name)
  52.     include (year);
  53. go
  54.  
  55.  
  56. --4.Создать индексированное представление.
  57. if OBJECT_ID(N'bookshelf_ix_view', N'V') is not null
  58.     drop view bookshelf_ix_view;
  59. go
  60. --table that is referenced by view_with_SCHEMABINDING cannot be modified
  61. --if this modification affects view
  62. create view bookshelf_ix_view
  63.     with SCHEMABINDIN
  64.     as select bid, year
  65.     from dbo.books
  66.     where year > 1930;
  67. go
  68. --unique clustered index must be the !first! to be made
  69. --only then any other index can be applied
  70. if EXISTS (select name from sys.indexes
  71.             where name = N'bookshelf_ix_view')
  72.     drop index bookshelf_ix_view on books;
  73. go
  74. create UNIQUE CLUSTERED index ix_books_bid_year
  75.     on bookshelf_ix_view(bid, year);
  76. go
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement