sql语句自增长列

select @i:=IFNULL(@i,0) +1 Rank,a.* from v_toplist_playerlevel a

为什么第一次执行的时候,Rank的值都是1,而后面执行就可以累加了。想不通,难道是因为@i变量未定义 。

select @i :=0 Rank,a.* from v_toplist_playerlevel a limit 1
union
select @i:=@i+1 Rank,a.* from v_toplist_playerlevel a limit 1,8446744073709551615
最后只好改成那个这样了。
在 Microsoft SQL Server (MSSQL) 中,没有像 MySQL 中 `SHOW CREATE TABLE` 这样直接的命令来查看某张表的建表语句。不过,可以通过系统目录视图和动态管理函数来生成创建表的 DDL 语句,特别是包含自增长(`IDENTITY`)定义的语句。 一种常见的方法是使用系统视图 `sys.tables` 和 `sys.columns` 来查询表的结构信息,并结合 `IDENTITY` 属性的判断来生成建表语句。此外,也可以使用 `sp_help` 存储过程来查看表的详细信息,包括自增长属性。例如: ```sql EXEC sp_help 'YourTableName'; ``` 如果需要生成完整的建表语句,可以使用以下查询来手动构造: ```sql SELECT 'CREATE TABLE [' + t.name + '] (' + STRING_AGG( '[' + c.name + '] ' + TYPE_NAME(c.user_type_id) + CASE WHEN c.is_identity = 1 THEN ' IDENTITY(' + CAST(ic.seed_value AS VARCHAR) + ',' + CAST(ic.increment_value AS VARCHAR) + ')' ELSE '' END + CASE WHEN c.is_nullable = 0 THEN ' NOT NULL' ELSE ' NULL' END, ', ' ) WITHIN GROUP (ORDER BY c.column_id) + ');' AS CreateTableStatement FROM sys.tables t JOIN sys.columns c ON t.object_id = c.object_id LEFT JOIN sys.identity_columns ic ON c.object_id = ic.object_id AND c.column_id = ic.column_id WHERE t.name = 'YourTableName' GROUP BY t.name; ``` 上述查询使用了 `sys.tables` 和 `sys.columns` 来获取表的信息,并通过 `sys.identity_columns` 来获取自增长的相关属性,如种子值和增量值。查询结果将生成一个完整的建表语句,包含自增长的定义[^1]。 ### 使用存储过程生成建表语句 另一种方法是使用系统存储过程 `sp_help` 和 `sp_helptext` 来查看表的定义。然而,`sp_helptext` 通常用于查看存储过程、触发器或视图的文本定义,而不是表的建表语句。因此,这种方法并不适用于直接获取表的 DDL 语句。 ### 使用 SQL Server Management Studio (SSMS) 在 SQL Server Management Studio (SSMS) 中,可以通过图形化界面生成表的建表语句。具体步骤如下: 1. 打开 SSMS 并连接到目标数据库。 2. 在对象资源管理器中,找到需要查看建表语句的表。 3. 右键点击该表,选择“脚本表为” -> “CREATE 到” -> “新查询编辑器窗口”。 SSMS 将生成一个包含所有定义(包括自增长)的完整建表语句,并显示在新的查询窗口中。 ### 使用系统视图生成建表语句 除了上述方法外,还可以使用系统视图 `sys.sql_modules` 来获取表的定义。然而,`sys.sql_modules` 通常用于存储模块(如存储过程、函数等)的 SQL 文本信息,而不是表的建表语句。因此,这种方法也不适用于直接获取表的 DDL 语句
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值