Advertisement
l-kikov

Implementing Tables and Views Demo

Dec 18th, 2015
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.55 KB | None | 0 0
  1. CREATE DATABASE demodb
  2. GO
  3. USE demodb
  4. GO
  5.  
  6. -- Create two tables and populate them
  7.  
  8. CREATE TABLE dbo.Mountain
  9. (
  10.     MountainID INT IDENTITY(1,1) PRIMARY KEY,
  11.     Name nvarchar(50) NOT NULL,
  12.     Lenght INT NOT NULL,
  13.     Country nvarchar(50)
  14. );
  15. GO
  16.  
  17. INSERT INTO Mountain(Name, Lenght, Country)
  18. VALUES ('Qgo Q', '66', 'Qgovica'),
  19.  ('Everest', '889', 'Bulgaria'),
  20.  ('Monte Negro', '5443', 'Na majnata si');
  21.  GO
  22.  
  23.  DROP TABLE dbo.Peak
  24.  GO
  25.  
  26.  CREATE TABLE dbo.Peak
  27.  (
  28.     PeakID INT IDENTITY(1000,1) PRIMARY KEY,
  29.     MountainID INT NOT NULL
  30.     FOREIGN KEY REFERENCES dbo.Mountain(MountainID),
  31.     PeakName nvarchar(50) NOT NULL,
  32.     SomePrice DECIMAL(18,2) NOT NULL
  33.  );
  34.  GO
  35.  
  36.  INSERT INTO Peak(MountainID, PeakName, SomePrice)
  37.  VALUES (2, 'Halifaks', 12.34),
  38.  (1, 'DjaBudja', 11.01),
  39.  (1, 'EngiBengi', 34.44),
  40.  (3, 'HakunaMatata', 69.69);
  41.  GO
  42.  
  43.  -- Try to insert ivalid data and note how poor is the error
  44.  -- message
  45.  
  46.  
  47.  INSERT INTO Peak(MountainID, PeakName, SomePrice)
  48.  VALUES (7, 'Halifaks', 12.34)
  49.  GO
  50.  
  51.  -- Try to remove data
  52.  DELETE FROM dbo.Mountain WHERE MountainID=1;
  53.  GO
  54.  
  55.  -- To be able to do that we need to remove the constraint and replace
  56.  -- it with named constraint with cascade delete option
  57.  
  58.  ALTER TABLE dbo.Peak
  59.     DROP CONSTRAINT FK__Peak__MountainID__22AA2996;
  60. GO
  61.  
  62. ALTER TABLE dbo.Peak
  63.     ADD CONSTRAINT FK_Peak_Mountain
  64.     FOREIGN KEY (MountainID)
  65.     REFERENCES dbo.Mountain (MountainID)
  66.     ON DELETE CASCADE;
  67. GO
  68.  
  69.  
  70. -- Note how cascade option caused references to be deleted too
  71. DELETE FROM dbo.Mountain WHERE MountainID = 1;
  72. GO
  73. SELECT * FROM Peak
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement