SQLserver 中如何将查询的字段作为表名进行查询?
时间: 2024-05-05 19:16:29 浏览: 18
在SQL Server中,可以使用动态SQL来实现将查询的字段作为表名进行查询。动态SQL是一种在运行时构建SQL语句的方法,通过拼接字符串来构建完整的SQL语句。例如,以下代码可以将一个变量作为表名查询:
```
DECLARE @tableName NVARCHAR(50) = 'MyTable'
DECLARE @sql NVARCHAR(MAX) = 'SELECT * FROM ' + QUOTENAME(@tableName)
EXEC sp_executesql @sql
```
在上面的示例中,QUOTENAME函数用于将表名包装在方括号中,以防止SQL注入攻击。然后,使用sp_executesql存储过程来执行动态SQL语句。这将查询名为"MyTable"的表,并返回所有列的数据。
相关问题
SQLserver 查询数据库中字段位置
### 回答1:
您可以使用如下查询来查询数据库中的字段位置:
```
SELECT ORDINAL_POSITION
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '<table_name>' AND COLUMN_NAME = '<column_name>';
```
替换 `<table_name>` 和 `<column_name>` 为您要查询的表名和字段名。
例如,如果要查询名为 `customers` 的表中名为 `email` 的字段的位置,您可以使用以下查询:
```
SELECT ORDINAL_POSITION
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'customers' AND COLUMN_NAME = 'email';
```
### 回答2:
在SQL Server中,可以使用系统函数`COLUMN_NAME`和`OBJECT_NAME`来查询数据库中字段的位置。
`COLUMN_NAME`函数用于从指定的表、视图或表值函数中获取字段的名称和位置。它接受两个参数:表或视图的ID和要查询字段的位置。位置是一个整数值,表示该字段在表或视图中的位置,其中第一个字段的位置为1。
例如,如果我们想要查询名为`customers`表中第三个字段的名称和位置,可以使用以下查询语句:
```
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'customers' AND ORDINAL_POSITION = 3
```
这将返回`customers`表中第三个字段的名称。
另一个有用的函数是`OBJECT_NAME`,用于从指定的对象ID获取对象的名称。它接受一个参数:对象的ID。
例如,如果我们想要查询ID为1的表中第五个字段的名称和位置,可以使用以下查询语句:
```
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = OBJECT_NAME(1) AND ORDINAL_POSITION = 5
```
这将返回ID为1的表中第五个字段的名称。
总结起来,通过使用`COLUMN_NAME`和`OBJECT_NAME`函数,我们可以查询SQL Server数据库中字段的位置和名称。
sqlserver查询所有自建表 表名、字段名、字段长度、注释
要查询 SQL Server 中所有自建表的表名、字段名、字段长度和注释,可以使用以下 SQL 语句:
```sql
SELECT
t.name AS table_name,
c.name AS column_name,
c.max_length AS column_length,
ep.value AS column_comment
FROM
sys.columns c
LEFT JOIN sys.extended_properties ep ON ep.major_id = c.object_id AND ep.minor_id = c.column_id AND ep.name = 'MS_Description'
INNER JOIN sys.tables t ON c.object_id = t.object_id
WHERE
t.is_ms_shipped = 0
ORDER BY
t.name, c.column_id;
```
该语句会查询所有非系统表的字段信息,并按照表名和字段 ID 排序。如果要查询特定架构下的自建表,可以在 `sys.tables` 表和 `SCHEMA_NAME` 函数中添加条件。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)