SQLserver查询当前数据库包含某表的所有视图或存储过程或查询自增列

您所在的位置:网站首页 sql查询自增序列的数据是什么 SQLserver查询当前数据库包含某表的所有视图或存储过程或查询自增列

SQLserver查询当前数据库包含某表的所有视图或存储过程或查询自增列

2024-07-13 18:23| 来源: 网络整理| 查看: 265

文章目录 前言查询包含表的视图查询自增列扩充知识之定义自增列

前言

首先,我用的是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