SQL Server String QUOTENAME() Function


SQL Server QUOTENAME() Function

The SQL Server QUOTENAME() function is used to return a Unicode string with delimiters added to make the string a valid SQL Server delimited identifier. This function is useful for ensuring that identifiers containing special characters or reserved keywords are properly quoted.


Syntax

SELECT QUOTENAME(string, [delimiter]);

The QUOTENAME() function takes two arguments:

  • string: The string to be delimited.
  • delimiter (optional): The delimiter to be used. If omitted, the default delimiter is square brackets ([]).

Example SQL Server QUOTENAME() Function Queries

Let's look at some examples of SQL Server QUOTENAME() function queries:

1. Basic QUOTENAME() Example with Default Delimiter

SELECT QUOTENAME('TableName') AS result;

This query returns the string 'TableName' delimited with square brackets. The result will be:

result
----------
[TableName]

2. QUOTENAME() with a Different Delimiter

SELECT QUOTENAME('TableName', '"') AS result;

This query returns the string 'TableName' delimited with double quotes. The result will be:

result
----------
"TableName"

3. QUOTENAME() with a Column

SELECT column_name, QUOTENAME(column_name) AS quoted_column_name
FROM information_schema.columns;

This query returns the column names from the information_schema.columns table and their delimited versions.

4. QUOTENAME() with a Variable

DECLARE @myString VARCHAR(50);
SET @myString = 'TableName';
SELECT QUOTENAME(@myString, '`') AS result;

This query uses a variable to store a string and then returns the string delimited with backticks. The result will be:

result
----------
`TableName`

Full Example

Let's go through a complete example that includes creating a table, inserting data, and using the QUOTENAME() function.

Step 1: Creating a Table

This step involves creating a new table named example_table to store some sample data.

CREATE TABLE example_table (
    id INT PRIMARY KEY,
    column_name VARCHAR(50)
);

In this example, we create a table named example_table with columns for id and column_name.

Step 2: Inserting Data into the Table

This step involves inserting some sample data into the example_table.

INSERT INTO example_table (id, column_name) VALUES (1, 'Name');
INSERT INTO example_table (id, column_name) VALUES (2, 'Age');
INSERT INTO example_table (id, column_name) VALUES (3, 'Address');

Here, we insert data into the example_table.

Step 3: Using the QUOTENAME() Function

This step involves using the QUOTENAME() function to return the delimited column names.

SELECT id, column_name, QUOTENAME(column_name, '"') AS quoted_column_name
FROM example_table;

This query retrieves the id, column_name, and the delimited version of the column_name column for each row in the example_table. The result will be:

id  column_name  quoted_column_name
--- ------------ ------------------
1   Name         "Name"
2   Age          "Age"
3   Address      "Address"

Conclusion

The SQL Server QUOTENAME() function is a powerful tool for returning a Unicode string with delimiters added to make the string a valid SQL Server delimited identifier. Understanding how to use the QUOTENAME() function and its syntax is essential for effective string manipulation and data processing in SQL Server.