SQLserver查询当前数据库包含某表的所有视图或存储过程或查询自增列 |
您所在的位置:网站首页 › sql查询自增序列的数据是什么 › SQLserver查询当前数据库包含某表的所有视图或存储过程或查询自增列 |
文章目录
前言查询包含表的视图查询自增列扩充知识之定义自增列
前言
首先,我用的是sql server。 查询包含表的视图当我想知道数据库中有多少视图、存储过程包含某数据表时,可以这样写 SELECT DISTINCT OBJECT_NAME(id) FROM syscomments WHERE id IN(SELECT id FROM sysobjects WHERE type IN ('v','p')) AND text LIKE '%tablename%'ORDER BY OBJECT_NAME(id)这段语句返回视图或存储过程名称 查询自增列自增列就是插入数据时某字段不用手动赋值,随着表数据自己增长,一般用identify标识。 我想查询某个表有什么字段是自增的,可以用下面语句查询。 SELECT * FROM syscolumns WHERE id=OBJECT_ID(N'tablename') AND COLUMNPROPERTY(id,name,'IsIdentity')=1 SELECT * FROM syscolumns WHERE id=OBJECT_ID(N'tablename') AND status=0x80`两种方法均可,字符串前面加N是表示该字符串是unicode格式。 返回结果第一个字段是自增列名称 或者编写表脚本查看 sqlserver选中某数据表右键–编写表脚本为–create 到–新查询编辑器窗口 从这个脚本就能知道啦,自增列后面会带identity 扩充知识之定义自增列 定义自增列可以在sqlserver中表的设计界面选择某字段设置列属性将标识规范是标识选为是即可 标识增量表示自增数据起始数字,标识种子表示跨度 定义自增列也可以使用T-SQL语句,分为以下三种情况:1.修改某表增加自增列 alter table 表名 add ID int identity(1,1) identity第一个参数表示自增数据起始数字,第二个表示跨度,也就是加几 2.创建表设置某字段自增 下面字段dID是自增的 CREATE TABLE [dbo].[LPMS_EHSHiddenDangerBaseInfo]( [dID] [decimal](18, 0) IDENTITY(1,1) NOT NULL, [cType] [varchar](50) NULL, )3.那我一个表的id字段一开始手动插入的的,后面我想换成自增了可以吗? 一般自增列是不能修改的,但是你可以删除旧的字段,再建立一个新的字段 alter table 表名 add ID int identity(1,1) alter table 表名 drop column ID 实现操作不难,但是在实际业务中要注意历史数据的处理 不然这个字段是id标识列,你删掉,所有数据都没id了,不是闯了大祸啦! 规范操作:删掉之前要把旧id列的值赋值给新id列,然后才能放心删除不要的字段。 UPDATE [tableName] SET [字段名副本]=字段名 WHERE 1=1加个where 1=1是为了不要提示,主要没有where会默认全表执行,MSSQL会提示一波,麻烦。 还有个使用场景就是查询某表加上where 1=1,这样后面筛选条件sql拼接时候直接写and就行,方便简洁。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |