tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL...
Transcript of tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL...
![Page 1: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/1.jpg)
tSQLt Tests:
Unit Test Your SQL
Server Code and
Sleep Better
Andy Jones
@SQLBits
#tSQLt
![Page 2: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/2.jpg)
Why?
• Robust Code
• Automate
• Save Money
• Improve Reputation
• Senior Position
• Enjoyable
• DevOps
![Page 3: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/3.jpg)
Unit Testing
Test Driven Development
tSQLt
Faking and Isolation
Third Party Tools
Agenda
![Page 4: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/4.jpg)
DevOps
“DevOps is the union of people, process, and products to enable continuous delivery of value to our end users”
Sam Guckenheimer
![Page 5: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/5.jpg)
DevOps
https://techbeacon.com/10-companies-killing-it-devops
11.7 seconds
50 per day
Thousands per day
![Page 6: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/6.jpg)
Testing?
Junior developer:
“I compile it”
Senior developer:
“How do you test
your code?”
![Page 7: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/7.jpg)
Database Release Spectrum
![Page 8: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/8.jpg)
Typical Process
Sprint Build Test Rework Test Live
![Page 9: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/9.jpg)
Could not find stored procedure 'dbo.InsertOrder'
Invalid column name 'TeamMember'
Procedure or function 'CustomerSelect' expects parameter '@Active', which was not supplied
Operand type clash: datetime2 is incompatible with int
The INSERT statement conflicted with the FOREIGN KEY constraint
![Page 10: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/10.jpg)
![Page 11: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/11.jpg)
Blame
"It's not my code
it's your machine"
"It's not my
machine it's your
code"
![Page 12: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/12.jpg)
Unit Testing
• Same Language
• Smallest Unit
• Isolated
• Any Order
• Repeatable
• Each Test Every Time
• Automated
• Remove Human Error
• Familiar to Devs JUnit | xUnit | Pester
![Page 13: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/13.jpg)
Test Driven Development
Write Test
Test Fails CodeAll Tests
PassRefactor
All Tests Pass
![Page 14: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/14.jpg)
Measure Twice Cut Once
![Page 15: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/15.jpg)
• Open source on GitHub
• Free
• 2005 and up
• Framework and tests are TSQL
• Independent via transactions
• Methods to fake objects and isolate
tSQLt
![Page 16: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/16.jpg)
Install
http://tsqlt.org/downloads
![Page 17: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/17.jpg)
Files
![Page 18: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/18.jpg)
Demo - Install
![Page 19: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/19.jpg)
![Page 20: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/20.jpg)
Security
Enable CLR
![Page 21: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/21.jpg)
SetClrEnabled.sql
EXECUTE sp_configure 'clr enabled', 1;RECONFIGURE;GO
![Page 22: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/22.jpg)
![Page 23: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/23.jpg)
Star Schema
![Page 24: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/24.jpg)
Demo – Create Our First Test
![Page 25: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/25.jpg)
Test Structure
Assemble Act Assert
![Page 26: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/26.jpg)
Assemble
Fake TableFake
Function
Fake ViewSpy
Procedure
![Page 27: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/27.jpg)
Act
--Act: Call the Get_Unknown_Key functionSELECT @Actual = dbo.Get_Unknown_Key();
![Page 28: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/28.jpg)
Assert
AssertEmptyTable
AssertEquals
AssertEqualsString
AssertEqualsTable
AssertEqualsTableSchema
AssertLike
AssertNotEquals
AssertObjectDoesNotExist
AssertObjectExists
AssertResultSetsHaveSameMetaData
Fail
![Page 29: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/29.jpg)
Running Tests
Class
All
Single
![Page 30: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/30.jpg)
![Page 31: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/31.jpg)
Prod Bugs Cost You 100x
1 1 510
100
Reqs Design Dev Test ProdSource: http://www.riceconsulting.com/public_pdf/STBC-WM.pdf
![Page 32: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/32.jpg)
Demo – Isolation
![Page 33: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/33.jpg)
Test Heuristics
Zero
OneSome
![Page 34: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/34.jpg)
Infographic
http://sqlity.net/lp-heuristics
![Page 35: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/35.jpg)
Demo – Static Data
![Page 36: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/36.jpg)
Clean Up
Not for production
EXECUTE tSQLt.Uninstall;
![Page 37: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/37.jpg)
Demo – Spy Procedure
![Page 38: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/38.jpg)
Performance Testing? Functional Only
![Page 39: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/39.jpg)
Modular
![Page 40: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/40.jpg)
Optimiser Help
![Page 41: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/41.jpg)
Which SP Are Tests
Starts
Test
Extended
Property ✓
![Page 42: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/42.jpg)
Naming Convention
EXECUTE tSQLt.NewTestClass@ClassName = 'Orders';
CREATE PROCEDURE Orders.[test Failed Order] AS
--assemble--act--assertRETURN;
![Page 43: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/43.jpg)
Extended Property
![Page 44: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/44.jpg)
tSQLt.TestClasses
CREATE VIEW tSQLt.TestClassesASSELECT s.name AS Name, s.schema_id AS SchemaIdFROM sys.extended_properties epJOIN sys.schemas s
ON ep.major_id = s.schema_idWHERE ep.name = N'tSQLt.TestClass';
![Page 45: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/45.jpg)
tSQLt.Tests
CREATE VIEW tSQLt.TestsASSELECT classes.SchemaId, classes.Name AS TestClassName,
procs.object_id AS ObjectId, procs.name AS NameFROM tSQLt.TestClasses classesJOIN sys.procedures procs ON classes.SchemaId = procs.schema_idWHERE LOWER(procs.name) LIKE 'test%';
![Page 46: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/46.jpg)
Demo – Setup Procedure
![Page 47: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/47.jpg)
Third Party Tools
Redgate Devart ApexSQL
![Page 48: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/48.jpg)
SQL Cop http://sqlcop.lessthandot.com
![Page 49: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/49.jpg)
SQL Cop
Missing Foreign
Keys
Compat Level
Column data types (Numeric
vs. Int)
![Page 50: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/50.jpg)
Standards
![Page 51: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/51.jpg)
Code Coverage
“Testing can be used to show the presence of bugs, but never to show their absence”
Edsger W. Dijkstra
![Page 52: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/52.jpg)
Summary
• Robust
• Find bugs early
• Automated
• Shared
• Repeatable
• Better you
![Page 53: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/53.jpg)
Example Database
![Page 54: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/54.jpg)
Call To Action
“The best time to plant a tree is twenty years ago. The second best time is now”
Chinese Proverb
![Page 55: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/55.jpg)
Just like Jimi Hendrix …
We love to get feedback
Please complete the session feedback forms
![Page 56: tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better · tSQLt Tests: Unit Test Your SQL Server Code and Sleep Better Andy Jones @SQLBits #tSQLt](https://reader031.fdocuments.us/reader031/viewer/2022040608/5ec96f1cd2542c249e6cf8f2/html5/thumbnails/56.jpg)
SQLBits - It's all about the community...
Please visit Community Corner, we are trying this year to get more people to learn about the SQL Community, equally if you would be happy to visit the community corner we’d really appreciate it.