Using Stored Procedure to create dynamic sql statement : Dynamic SQL « Transact SQL « SQL Server / T-SQL Tutorial

Home
SQL Server / T-SQL Tutorial
1.Query
2.Insert Delete Update
3.Table
4.Table Join
5.Data Types
6.Set Operations
7.Constraints
8.Subquery
9.Aggregate Functions
10.Date Functions
11.Math Functions
12.String Functions
13.Data Convert Functions
14.Analytical Functions
15.Sequence Indentity
16.View
17.Index
18.Cursor
19.Database
20.Transact SQL
21.Procedure Function
22.Trigger
23.Transaction
24.XML
25.System Functions
26.System Settings
27.System Tables Views
28.User Role
29.CLR
SQL Server / T-SQL Tutorial » Transact SQL » Dynamic SQL 
20.18.4.Using Stored Procedure to create dynamic sql statement
4>
5>
6CREATE TABLE sales(
7>    stor_id        char(4)           NOT NULL,
8>    ord_num        varchar(20)       NOT NULL,
9>    ord_date       datetime          NOT NULL,
10>    qty            smallint          NOT NULL,
11>    payterms       varchar(12)       NOT NULL,
12>    title_id       varchar(80)
13)
14> GO
1insert sales values('1''QA7442.3', '09/13/94', 75'ON Billing','1')
2insert sales values('2''D4482',    '09/14/94', 10'Ne60',    '1')
3insert sales values('3''N914008',  '09/14/94', 20'Ne30',    '2')
4insert sales values('4''N914014',  '09/14/94', 25'Ne30',    '3')
5insert sales values('5''423LL922', '09/14/94', 15'ON Billing','3')
6insert sales values('6''423LL930', '09/14/94', 10'ON Billing','2')
7> GO

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)

(rows affected)
1>
2>     CREATE PROCEDURE SalesQtys
3>         @chvOrderBy VARCHAR(30'qty',
4>         @chvSortType VARCHAR(4'ASC'
5>     AS
6>     DECLARE @chvSQL VARCHAR(255)
7>     SELECT @chvSQL = 'SELECT stor_id, ord_num, title_id, qty'
8>     SELECT @chvSQL = @chvSQL + ' FROM Sales'
9>     SELECT @chvSQL = @chvSQL + ' ORDER BY ' + @chvOrderBy + ' ' + @chvSortType
10>     EXEC (@chvSQL)
11>     GO
1>
2>     SalesQtys @chvOrderBy = 'stor_id', @chvSortType = 'DESC'
3>     GO
stor_id ord_num              title_id                                                                         qty
------- -------------------- -------------------------------------------------------------------------------- ------
6       423LL930             2                                                                                    10
5       423LL922             3                                                                                    15
4       N914014              3                                                                                    25
3       N914008              2                                                                                    20
2       D4482                1                                                                                    10
1       QA7442.3             1                                                                                    75

(rows affected)
1>     SalesQtys
2>     GO
stor_id ord_num              title_id                                                                         qty
------- -------------------- -------------------------------------------------------------------------------- ------
2       D4482                1                                                                                    10
6       423LL930             2                                                                                    10
5       423LL922             3                                                                                    15
3       N914008              2                                                                                    20
4       N914014              3                                                                                    25
1       QA7442.3             1                                                                                    75

(rows affected)
1>     SalesQtys @chvOrderBy = 'title_id'
2>     GO
stor_id ord_num              title_id                                                                         qty
------- -------------------- -------------------------------------------------------------------------------- ------
1       QA7442.3             1                                                                                    75
2       D4482                1                                                                                    10
3       N914008              2                                                                                    20
6       423LL930             2                                                                                    10
4       N914014              3                                                                                    25
5       423LL922             3                                                                                    15

(rows affected)
1>
2>
3> drop table sales;
4> GO
20.18.Dynamic SQL
20.18.1.A stored procedure with dynamic execution.
20.18.2.Simple SELECT query that uses a variable for the field to sequence the result set.
20.18.3.SELECT query with a variable for the table name so that condition determines which table the result set is based on.
20.18.4.Using Stored Procedure to create dynamic sql statement
20.18.5.Change database dynamically
20.18.6.Pass parameters into dynamic sql statement
20.18.7.Build a dynamic sql statement from schema name, table name and column name
20.18.8.create a dynamic sql statement and save it in a varchar type variable
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.