Dynamic Table Name Variable in SQL Server
Last Updated :
28 Dec, 2023
In SQL Server, the dynamic table name variable is used when the name of the table is not explicitly stated in a query but is set in a variable and used instead. This can be in situations where the user does not know or the executing code does not know the table name beforehand and is only determined at run time.
Dynamic Table Variable Usage
The dynamic table variable can be used to get input from the user from the front-end at runtime or may be due to some choice from user action. By this method, the user can get data from different tables to display data in the front end based on some criteria. So the front end can send the table name dynamically from a text-box input to back-end to fetch data from different tables based on user input. There can also be other use cases for using a dynamic table name at run time.
We can create stored procedures that accept the table name as a parameter to accept different table names at run time to make the same procedure re-usable for different tables.
There can also be some situations where tables are created dynamically and data inserted at run time. Here also we can use the dynamic table name variable to handle these situations.
Examples: Dynamic Table Variable Usage
Example 1
The below example shows a very simple dynamic SQL with a table variable to get data:
Example of Dynamic Table variable using dynamic SQL.
DECLARE @tableName1 NVARCHAR(50) = 'Students';
DECLARE @SQLString NVARCHAR(2000);
SET @SQLString = N'SELECT * FROM ' + QUOTENAME(@tableName1);
EXECUTE sp_executesql @SQLString;
In the above example the '@tableName1' is used a table variable to the select statement to get table data.
Example 2
The below example shows how to use a stored procedure to get table data using parameters for table name:
Create Procedure GetDynamicTableData
(
@TableName varchar(30)
)
As
Begin
Declare @SQLString nvarchar(1000)
Set @SQLString='Select * from ' + QUOTENAME(@TableName)
EXEC sp_executesql @SQLString
End
The @TableName variable is used in this stored procedure 'GetDynamicTableData' to send the table name to select statement.
Below is how the stored procedure is called with the table name.
EXEC GetDynamicTableData 'DynamicTab2'
Example 3
Below example shows about, how we can create a dynamic table using the table variable:
Create Procedure AddNewTable
(
@TableName varchar(30),
@ColumnName1 varchar(30),
@ColumnName2 varchar(30),
@ColumnName3 varchar(30)
)
As
Begin
Declare @SQLString nvarchar(1000)
Set @SQLString='Create Table ' + QUOTENAME(@TableName) + '(' + QUOTENAME(@ColumnName1) +
'varchar(50),' + QUOTENAME(@ColumnName2) + 'varchar(50),' + QUOTENAME(@ColumnName3) + 'varchar(50))'
EXEC sp_executesql @SQLString
End
The @TableName is the variable name to pass the new table name to 'AddNewTable' stored procedure to create the new table dynamically at run time.
When we execute the below stored procedure the new table is created.
EXEC AddNewTable 'DynamicTab2','Column1','Column2','Column3'
Security Considerations
While using dynamic table names the security aspect like SQL Injection should be taken care. So always the table name in the dynamic SQL should be used with the 'QUOTENAME' like QUOTENAME(@TblName) so that no malicious command is executed and only a valid table name is used with the table variable.
Conclusion
The dynamic Table Name variable is a good method to handle table names dynamically and offers great flexibility. At the same time using dynamic table name can make the code less readable and difficulty to maintain, and so document your code in detail to make it understandable by others. Also, the dynamic table usage can lead to security issues and so care should be taken for security with proper validation.
Similar Reads
Dynamic SQL in SQL Server
In SQL Server, at times the SQL Queries need to be dynamic and not static, meaning the complete SQL query may be built dynamically at run time as a string using the user inputs and any specific application logic. This can be done in queries run from back-end applications or inside stored procedures.
6 min read
How to Rename a View in SQL Server?
The view is a virtual table based on the result set of an SQL statement. It is like the subset of the table and created to optimize the database experience. Like a real table, this also contains rows and columns. The data in a view are extracted from one or more real tables in the database. Renaming
2 min read
How to Declare a Variable in SQL Server?
In SQL Server, variables play a critical role in the dynamic execution of SQL scripts and procedures. Variables allow you to store and manipulate data temporarily within the scope of a batch or procedure. By using the DECLARE statement, you can create variables with specific data types, which can th
6 min read
SQL Server SELECT INTO @Variable
In the world of SQL Server, the SELECT INTO statement is a powerful syntax for retrieving data from one or more tables and inserting it into a new table. However, what if you want to store the result set of a SELECT query into a variable rather than a table? This is where the SELECT INTO @Variable s
6 min read
How to Use Dynamic Variable Names in JavaScript?
Dynamic variable names are variable names that are not predefined but are generated dynamically during the execution of a program. This means the name of a variable can be determined at runtime, rather than being explicitly written in the code. Here are different ways to use dynamic variables in Jav
2 min read
CREATE TABLE in SQL Server
SQL Server provides a variety of data management tools such as querying, indexing, and transaction processing. It supports multiple programming languages and platforms, making it a versatile RDBMS for various applications. With its robust features and reliability, SQL Server is a popular choice for
4 min read
How to Update a Column in a Table in SQL Server
In the database management area, updating columns in a table is a normal query and it is important software that ensures the accuracy and integrity of data. Whether we are making spelling corrections, editing or altering existing information, or being attentive to changing requirements, carrying out
4 min read
How to Find Day Name From Date in SQL Server?
Finding the day name from a specific date is a common task in SQL Server, useful for generating reports, analyzing trends, or scheduling. SQL Server provides two primary methods such as the DATENAME() function and the FORMAT() function. In this article, We will learn about How to Find Day Name From
4 min read
Insert Statement in MS SQL Server
The SQL Server INSERT statement is a fundamental command used to add new rows of data to a table. Whether we are inserting specific values, utilizing default values or copying data from another table. In this guide, weâll explore various ways to use the Insert statement in MS SQL Server with the hel
4 min read
Rename Column in SQL Server
SQL Server is a widely used Relational Database Management System (RDBMS) that allows users to create and manage databases effectively. Renaming a column in a database is a common task usually required when users want to change the database schema. In this article, we will explore different methods
3 min read