sql server用变量动态命名临时表表名【转】

本文介绍了在SQL中动态创建表名的两种方法:使用全局临时表和创建真正的表,并提供了具体的实现步骤及注意事项。
如果需要动态创建表名,只能用以下两种方法:
1、创建全局临时表(用两个#)。
declare @n nvarchar(10),@s nvarchar(100)
set @n = 'temp'
set @s = N'select * into ##'+@n+' from mytable'
--print @s
exec sp_executesql @s
2、创建真正的表(去掉#),一定要小心的创建,小心的删除。
declare @n nvarchar(10),@s nvarchar(100)
set @n = 'temp'
set @s = N'select * into '+@n+' from mytable'
--print @s
exec sp_executesql @s
这种方法创建的表,存放在当前的数据库里,而不是像临时表一样存放在tempdb数据库里。
<think>我们需要查看SQL Server数据库中的表。这可以通过查询系统视图或使用存储过程来实现。 常用方法: 1. 使用系统视图:sys.tables 或 INFORMATION_SCHEMA.TABLES 2. 使用存储过程:sp_tables 下面分别展示这些方法。 方法1:使用sys.tables(仅显示用户表,不包含系统表) 方法2:使用INFORMATION_SCHEMA.TABLES(标准方法,可移植性好,返回当前数据库中的表) 方法3:使用sp_tables(返回当前环境中所有可以查询的对象,包括表和视图等) 我们通常使用前两种方法之一。 示例代码: </think>要查看 SQL Server 数据库中的表信息,可以使用以下方法: ### 方法1:使用系统视图 `sys.tables`(推荐) ```sql SELECT name AS TableName, object_id AS ObjectID, create_date AS CreatedDate, modify_date AS ModifiedDate FROM sys.tables ORDER BY name; ``` **解释**: - `sys.tables` 系统视图包含当前数据库所有用户表的信息 - `name`:表称 - `object_id`:表的唯一标识符 - `create_date/modify_date`:表的创建/最后修改日期 ### 方法2:使用信息架构视图 `INFORMATION_SCHEMA.TABLES` ```sql SELECT TABLE_NAME AS TableName, TABLE_TYPE AS TableType FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME; ``` **解释**: - 标准SQL方法,兼容其他数据库系统 - `TABLE_TYPE = 'BASE TABLE'` 过滤掉视图等对象 - 仅返回表和类型信息 ### 方法3:使用存储过程 `sp_tables` ```sql EXEC sp_tables @table_type = "'TABLE'"; ``` **解释**: - SQL Server 专用存储过程 - `@table_type` 参数过滤表类型 - 返回表、所有者、类型等详细信息 ### 方法4:查询表详细信息(含列) ```sql SELECT t.name AS TableName, c.name AS ColumnName, ty.name AS DataType, c.max_length AS MaxLength, c.is_nullable AS Nullable FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id JOIN sys.types ty ON c.user_type_id = ty.user_type_id ORDER BY t.name, c.column_id; ``` **解释**: - 关联多个系统视图获取表结构详情 - 展示表、列、数据类型、长度等列级信息 - `column_id` 保证列按定义顺序排列 ### 方法5:SSMS图形界面操作 1. 连接数据库实例 2. 展开数据库 → "表" 节点 3. 右键表 → "属性" 查看详细信息 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值