|
6 | 6 |
|
7 | 7 | -- ─── Drop existing objects ──────────────────────────────────────────────────── |
8 | 8 |
|
9 | | -IF OBJECT_ID('dbo.sp_GetEmployeesAsJSON', 'P') IS NOT NULL DROP PROCEDURE sp_GetEmployeesAsJSON; |
| 9 | +IF OBJECT_ID('dbo.sp_PrintMessage', 'P') IS NOT NULL DROP PROCEDURE sp_PrintMessage; |
| 10 | +IF OBJECT_ID('dbo.sp_GetEmployeeWithOutput', 'P') IS NOT NULL DROP PROCEDURE sp_GetEmployeeWithOutput; |
| 11 | +IF OBJECT_ID('dbo.sp_GetMultipleResultSets', 'P') IS NOT NULL DROP PROCEDURE sp_GetMultipleResultSets; |
| 12 | +IF OBJECT_ID('dbo.CompatRPC_StrProc', 'P') IS NOT NULL DROP PROCEDURE CompatRPC_StrProc; |
| 13 | +IF OBJECT_ID('dbo.CompatRPC_SelectProc', 'P') IS NOT NULL DROP PROCEDURE CompatRPC_SelectProc; |
| 14 | +IF OBJECT_ID('dbo.CompatRPC_NamedParams', 'P') IS NOT NULL DROP PROCEDURE CompatRPC_NamedParams; |
| 15 | +IF OBJECT_ID('dbo.CompatRPC_IntProc', 'P') IS NOT NULL DROP PROCEDURE CompatRPC_IntProc; |
| 16 | +IF OBJECT_ID('dbo.sp_GetEmployeesAsJSON', 'P') IS NOT NULL DROP PROCEDURE sp_GetEmployeesAsJSON; |
10 | 17 | IF OBJECT_ID('dbo.sp_GetDepartmentSummary', 'P') IS NOT NULL DROP PROCEDURE sp_GetDepartmentSummary; |
11 | 18 | IF OBJECT_ID('dbo.sp_InsertEmployee', 'P') IS NOT NULL DROP PROCEDURE sp_InsertEmployee; |
12 | 19 | IF OBJECT_ID('dbo.sp_GetEmployeesByDepartment', 'P') IS NOT NULL DROP PROCEDURE sp_GetEmployeesByDepartment; |
13 | 20 | IF OBJECT_ID('dbo.sp_GetEmployeeById', 'P') IS NOT NULL DROP PROCEDURE sp_GetEmployeeById; |
14 | 21 | IF OBJECT_ID('dbo.BulkTestTable', 'U') IS NOT NULL DROP TABLE BulkTestTable; |
| 22 | +IF OBJECT_ID('dbo.LargeData', 'U') IS NOT NULL DROP TABLE LargeData; |
15 | 23 | IF OBJECT_ID('dbo.TypesTable', 'U') IS NOT NULL DROP TABLE TypesTable; |
16 | 24 | IF OBJECT_ID('dbo.Employees', 'U') IS NOT NULL DROP TABLE Employees; |
17 | 25 | IF OBJECT_ID('dbo.Departments', 'U') IS NOT NULL DROP TABLE Departments; |
@@ -181,7 +189,7 @@ INSERT INTO TypesTable ( |
181 | 189 | ); |
182 | 190 |
|
183 | 191 | -- Update row 2 col_nvarchar_max to 5000 'X' chars (multi-packet PLP test) |
184 | | -DECLARE @big NVARCHAR(MAX) = REPLICATE(N'X', 5000); |
| 192 | +DECLARE @big NVARCHAR(MAX) = REPLICATE(CAST(N'X' AS NVARCHAR(MAX)), 5000); |
185 | 193 | UPDATE TypesTable SET col_nvarchar_max = @big WHERE id = 2; |
186 | 194 | GO |
187 | 195 |
|
@@ -262,3 +270,73 @@ BEGIN |
262 | 270 | FOR JSON PATH; |
263 | 271 | END; |
264 | 272 | GO |
| 273 | + |
| 274 | +-- ─── LargeData ─────────────────────────────────────────────────────────────── |
| 275 | + |
| 276 | +CREATE TABLE LargeData ( |
| 277 | + id INT IDENTITY(1,1) PRIMARY KEY, |
| 278 | + payload NVARCHAR(MAX) NOT NULL, |
| 279 | + label NVARCHAR(100) NOT NULL |
| 280 | +); |
| 281 | +GO |
| 282 | + |
| 283 | +-- ─── Additional Stored Procedures ──────────────────────────────────────────── |
| 284 | + |
| 285 | +CREATE PROCEDURE sp_GetMultipleResultSets |
| 286 | +AS |
| 287 | +BEGIN |
| 288 | + SELECT id, name FROM Departments ORDER BY id; |
| 289 | + SELECT id, name, department_id FROM Employees ORDER BY id; |
| 290 | +END; |
| 291 | +GO |
| 292 | + |
| 293 | +CREATE PROCEDURE sp_GetEmployeeWithOutput |
| 294 | + @EmployeeId UNIQUEIDENTIFIER, |
| 295 | + @FullName NVARCHAR(200) OUTPUT, |
| 296 | + @DepartmentName NVARCHAR(100) OUTPUT |
| 297 | +AS |
| 298 | +BEGIN |
| 299 | + SELECT @FullName = e.name, |
| 300 | + @DepartmentName = d.name |
| 301 | + FROM Employees e |
| 302 | + JOIN Departments d ON e.department_id = d.id |
| 303 | + WHERE e.id = @EmployeeId; |
| 304 | + RETURN 0; |
| 305 | +END; |
| 306 | +GO |
| 307 | + |
| 308 | +CREATE PROCEDURE sp_PrintMessage @Msg NVARCHAR(500) |
| 309 | +AS |
| 310 | +BEGIN |
| 311 | + PRINT @Msg; |
| 312 | +END; |
| 313 | +GO |
| 314 | + |
| 315 | +CREATE PROCEDURE CompatRPC_IntProc @InVal INT, @OutVal INT OUTPUT |
| 316 | +AS |
| 317 | +BEGIN |
| 318 | + SET @OutVal = @InVal * 2; |
| 319 | + RETURN 77; |
| 320 | +END; |
| 321 | +GO |
| 322 | + |
| 323 | +CREATE PROCEDURE CompatRPC_NamedParams @Val INT, @Str NVARCHAR(50) |
| 324 | +AS |
| 325 | +BEGIN |
| 326 | + SELECT @Val + 1 AS Result, @Str AS Msg; |
| 327 | +END; |
| 328 | +GO |
| 329 | + |
| 330 | +CREATE PROCEDURE CompatRPC_SelectProc @N INT |
| 331 | +AS |
| 332 | +BEGIN |
| 333 | + SELECT @N AS Val, @N * 2 AS [Double]; |
| 334 | +END; |
| 335 | +GO |
| 336 | + |
| 337 | +CREATE PROCEDURE CompatRPC_StrProc @InStr NVARCHAR(50), @OutStr NVARCHAR(50) OUTPUT |
| 338 | +AS |
| 339 | +BEGIN |
| 340 | + SET @OutStr = N'Hello ' + @InStr; |
| 341 | +END; |
| 342 | +GO |
0 commit comments