Guest User

Untitled

a guest
May 22nd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. ALTER TABLE dbo.tblBGiftVoucherItem
  2. ADD isUsGift AS CAST
  3. (
  4. ISNULL(
  5. CASE WHEN sintMarketID = 2
  6. AND strType = 'CARD'
  7. AND strTier1 LIKE 'GG%'
  8. THEN 1
  9. ELSE 0
  10. END
  11. , 0)
  12. AS BIT
  13. ) PERSISTED;
  14.  
  15. CREATE INDEX FIX_tblBGiftVoucherItem_incl
  16. ON dbo.tblBGiftVoucherItem (strItemNo)
  17. INCLUDE (strTier3)
  18. WHERE isUsGift = 1;
  19.  
  20. USE tempdb;
  21.  
  22. CREATE TABLE dbo.PersistedViewTest
  23. (
  24. PersistedViewTest_ID INT NOT NULL
  25. CONSTRAINT PK_PersistedViewTest
  26. PRIMARY KEY CLUSTERED
  27. IDENTITY(1,1)
  28. , SomeData VARCHAR(2000) NOT NULL
  29. , TestComputedColumn AS (PersistedViewTest_ID - 1) PERSISTED
  30. );
  31. GO
  32.  
  33. CREATE VIEW dbo.PersistedViewTest_View
  34. WITH SCHEMABINDING
  35. AS
  36. SELECT PersistedViewTest_ID
  37. , SomeData
  38. , TestComputedColumn
  39. FROM dbo.PersistedViewTest
  40. WHERE TestComputedColumn < CONVERT(INT, 27);
  41.  
  42. CREATE UNIQUE CLUSTERED INDEX IX_PersistedViewTest
  43. ON dbo.PersistedViewTest_View(PersistedViewTest_ID);
  44. GO
  45.  
  46. INSERT INTO dbo.PersistedViewTest (SomeData)
  47. SELECT o.name + o1.name + o2.name
  48. FROM sys.objects o
  49. CROSS JOIN sys.objects o1
  50. CROSS JOIN sys.objects o2;
  51.  
  52. CREATE STATISTICS ST_PersistedViewTest_View
  53. ON dbo.PersistedViewTest_View(TestComputedColumn)
  54. WITH FULLSCAN;
  55.  
  56. CREATE INDEX IX_PersistedViewTest_View_TestComputedColumn
  57. ON dbo.PersistedViewTest_View(TestComputedColumn);
  58.  
  59. SELECT pv.PersistedViewTest_ID
  60. , pv.TestComputedColumn
  61. FROM dbo.PersistedViewTest pv
  62. WHERE pv.TestComputedColumn = CONVERT(INT, 26)
  63.  
  64. SELECT pv.PersistedViewTest_ID
  65. , pv.TestComputedColumn
  66. FROM dbo.PersistedViewTest_View pv WITH (NOEXPAND)
  67. WHERE pv.TestComputedColumn = CONVERT(INT, 26)
  68.  
  69. -- Create the test table that uses a computed column.
  70. USE tempdb;
  71. CREATE TABLE dbo.PersistedViewTest
  72. (
  73. PersistedViewTest_ID INT NOT NULL
  74. CONSTRAINT PK_PersistedViewTest
  75. PRIMARY KEY CLUSTERED
  76. IDENTITY(1,1)
  77. , SomeData VARCHAR(2000) NOT NULL
  78. , TestComputedColumn AS (PersistedViewTest_ID - 1) PERSISTED
  79. );
  80. GO
  81.  
  82. -- Insert some test data into the table.
  83. INSERT INTO dbo.PersistedViewTest (SomeData)
  84. SELECT o.name + o1.name + o2.name
  85. FROM sys.objects o
  86. CROSS JOIN sys.objects o1
  87. CROSS JOIN sys.objects o2;
  88. GO
  89.  
  90. SELECT pv.PersistedViewTest_ID, pv.TestComputedColumn
  91. FROM dbo.PersistedViewTest pv
  92. WHERE pv.TestComputedColumn = CONVERT(INT, 26)
  93. GO
  94.  
  95. -- Create filtered view on the computed column.
  96. CREATE VIEW dbo.PersistedViewTest_View
  97. WITH SCHEMABINDING
  98. AS
  99. SELECT PersistedViewTest_ID, SomeData, TestComputedColumn
  100. FROM dbo.PersistedViewTest
  101. WHERE TestComputedColumn < CONVERT(INT, 27);
  102. GO
  103.  
  104. -- Create unique clustered index to persist the values, including the computed column.
  105. CREATE UNIQUE CLUSTERED INDEX IX_PersistedViewTest
  106. ON dbo.PersistedViewTest_View(PersistedViewTest_ID);
  107. GO
  108.  
  109. SELECT pv.PersistedViewTest_ID, pv.TestComputedColumn
  110. FROM dbo.PersistedViewTest_View pv
  111. WHERE pv.TestComputedColumn = CONVERT(INT, 26)
  112. GO
  113.  
  114. SELECT pv.PersistedViewTest_ID, pv.TestComputedColumn
  115. FROM dbo.PersistedViewTest_View pv WITH (NOEXPAND)
  116. WHERE pv.TestComputedColumn = CONVERT(INT, 26)
  117. GO
Add Comment
Please, Sign In to add comment