-- Insert sample data INSERT INTO Users (Username, Email) VALUES ('john_doe', 'john@example.com'), ('jane_smith', 'jane@example.com'), ('bob_wilson', 'bob@example.com'); GO
USE DevDatabase; GO
-- Create a sample database CREATE DATABASE DevDatabase; GO sql server 2019 developer edition
-- Create a useful function CREATE FUNCTION dbo.GetActiveUsers() RETURNS TABLE AS RETURN ( SELECT UserID, Username, Email, CreatedDate FROM Users WHERE IsActive = 1 ); GO -- Insert sample data INSERT INTO Users (Username,
-- Create a stored procedure with error handling CREATE PROCEDURE dbo.sp_AddUser @Username NVARCHAR(100), @Email NVARCHAR(200) AS BEGIN BEGIN TRY BEGIN TRANSACTION; Email) VALUES ('john_doe'
IF EXISTS (SELECT 1 FROM Users WHERE Email = @Email) BEGIN RAISERROR('Email already exists', 16, 1); RETURN; END INSERT INTO Users (Username, Email) VALUES (@Username, @Email); COMMIT TRANSACTION; SELECT SCOPE_IDENTITY() AS NewUserID; END TRY BEGIN CATCH ROLLBACK TRANSACTION; THROW; END CATCH END; GO -- Test the stored procedure EXEC dbo.sp_AddUser 'alice_new', 'alice@example.com'; -- Query with the table-valued function SELECT * FROM dbo.GetActiveUsers();