0% found this document useful (0 votes)
43 views

Procedures - Variables

This document discusses SQL Server stored procedures, variables, and system stored procedures. It shows examples of creating stored procedures that take parameters, use variables, perform inserts and selects, and return result sets. It also demonstrates system stored procedures like SP_HELPDB, SP_HELP, and SP_DEPENDS and how to use dynamic SQL with SP_EXECUTESQL to return table lists from different databases.

Uploaded by

kphani24
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views

Procedures - Variables

This document discusses SQL Server stored procedures, variables, and system stored procedures. It shows examples of creating stored procedures that take parameters, use variables, perform inserts and selects, and return result sets. It also demonstrates system stored procedures like SP_HELPDB, SP_HELP, and SP_DEPENDS and how to use dynamic SQL with SP_EXECUTESQL to return table lists from different databases.

Uploaded by

kphani24
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

-- Variables (batch scoped) declare @var1 int set @var1 = 100 select @var1 go --OR declare @var1 int

select @var1 = 100 select @var1

-- STORED PROCEDURES: CREATE PROCEDURE USP_COMPUTESUM (@VAR1 INT, @VAR2 INT, @VAR3 INT) AS BEGIN DECLARE @SUM INT SET @SUM = @VAR1 + @VAR2 + @VAR3 SELECT @SUM END EXECUTE USP_COMPUTESUM 1200, 1345, 5679

CREATE PROC USP_COMPUTESUM_V2 @VAR1 INT, @VAR2 INT, @VAR3 INT AS DECLARE @SUM INT SELECT @SUM = @VAR1 + @VAR2 + @VAR3 SELECT @SUM

EXEC USP_COMPUTESUM_V2 101,100,200 EXEC USP_COMPUTESUM_V2 @VAR2 = 100, @VAR1 = 101, @VAR3 = 200

SELECT * FROM FLIGHT CREATE PROC USP_FLIGHTINS @SRC VARCHAR(30), @DST VARCHAR(30), @ACR VARCHAR(30) AS BEGIN INSERT INTO FLIGHT VALUES(@SRC,@DST,@ACR) END EXEC USP_FLIGHTINS 'SRC1','DEST1','AC1'

select * from EMP_TABLE ALTER TABLE EMP_TABLE ADD EMP_LOC VARCHAR(30) NOT NULL DEFAULT 'HYD'

CREATE PROC UPS_INS_EMPDATA @ID INT, @NAME VARCHAR(30), @SAL INT, @GENDER CHAR(1), @LOC VARCHAR(3) AS BEGIN IF @SAL > 20000 AND @GENDER = 'M' INSERT INTO EMP_TABLE VALUES(@ID,@NAME,@SAL,'M',@LOC) ELSE IF @SAL > 20000 AND @GENDER = 'F' AND @LOC = 'HYD' PRINT 'INVALID INSERT. SALARY FOR MALES CANNOT BE GREATER THAN 20000' ELSE INSERT INTO EMP_TABLE VALUES(@ID,@NAME,@SAL,'M',@LOC) END

EXEC UPS_INS_EMPDATA 10003, 'NAME3', 12000, 'M', 'BNG' EXEC UPS_INS_EMPDATA 10003, 'NAME3', 12000, 'F', 'BNG' EXEC UPS_INS_EMPDATA 10003, 'NAME3', 22000, 'F', 'HYD'

-- DYNAMIC SQL --GIVEN A DATABASE, I WANTED LIST OF TABLES ALTER PROC USP_RET_TABLE_LIST ( @DB_NAME SYSNAME = NULL) AS BEGIN DECLARE @QUERY NVARCHAR(50) IF @DB_NAME IS NULL SET @QUERY = N'SELECT * FROM SYS.TABLES' ELSE SET @QUERY = N'SELECT * FROM '+ @DB_NAME +'.SYS.TABLES' EXECUTE SP_EXECUTESQL @QUERY END EXEC USP_RET_TABLE_LIST 'EMPLOYEE_DATABASE' EXEC USP_RET_TABLE_LIST

-- SYSTEM PROCEDURES: EXEC SP_HELPDB SELECT * FROM SYSDATABASES SELECT * FROM SYSFILES EXEC SP_HELPDB 'EMPLOYEE_DATABASE' EXEC SP_HELP 'EMP_TABLE' EXEC SP_HELP 'UPS_INS_EMPDATA' CREATE TABLE TEST_EMPDETAILS ( EMP_ID INT, EMP_ALT_ID INT, CONSTRAINT PK_EMP_IDS PRIMARY KEY(EMP_ID, EMP_ALT_ID) ) EXEC SP_PKEYS 'TEST_EMPDETAILS'

EXEC SP_HELPINDEX 'TEST_EMPDETAILS' EXEC SP_HELPTEXT 'UPS_INS_EMPDATA' EXEC SP_DEPENDS 'EMP_TABLE'

ALTER PROC UPS_INS_EMPDATA @ID INT, @NAME VARCHAR(30), @SAL INT, @GENDER CHAR(1), @LOC VARCHAR(3) WITH ENCRYPTION AS BEGIN IF @SAL > 20000 AND @GENDER = 'M' INSERT INTO EMP_TABLE VALUES(@ID,@NAME,@SAL,'M',@LOC) ELSE IF @SAL > 20000 AND @GENDER = 'F' AND @LOC = 'HYD' PRINT 'INVALID INSERT. SALARY FOR MALES CANNOT BE GREATER THAN 20000' ELSE INSERT INTO EMP_TABLE VALUES(@ID,@NAME,@SAL,'M',@LOC) END

EXEC SP_EXECUTESQL N'CREATE DATABASE DB_TEST'

EXEC SP_EXECUTESQL N'CREATE TABLE TAB_SP1(COL1 INT)' EXEC SP_EXECUTESQL N'INSERT INTO TAB_SP1 VALUES(1)' EXEC SP_EXECUTESQL N'SELECT * FROM TAB_SP1'

-- MASTER STORED PROCEDURES: USE MASTER CREATE PROC SP_RET_TABLE_LIST ( @DB_NAME SYSNAME = NULL) AS BEGIN DECLARE @QUERY NVARCHAR(50) IF @DB_NAME IS NULL SET @QUERY = N'SELECT * FROM SYS.TABLES' ELSE SET @QUERY = N'SELECT * FROM '+ @DB_NAME +'.SYS.TABLES' EXECUTE SP_EXECUTESQL @QUERY END USE TEMPDB EXEC SP_RET_TABLE_LIST

USE MASTER CREATE PROC USP_RET_TABLE_LIST ( @DB_NAME SYSNAME = NULL) AS BEGIN

DECLARE @QUERY NVARCHAR(50) IF @DB_NAME IS NULL SET @QUERY = N'SELECT * FROM SYS.TABLES' ELSE SET @QUERY = N'SELECT * FROM '+ @DB_NAME +'.SYS.TABLES' EXECUTE SP_EXECUTESQL @QUERY END USE TEMPDB EXEC USP_RET_TABLE_LIST

You might also like