推广 热搜: csgo  vue  2023  angelababy  gps  信用卡  新车  htc  落地  控制 

sql 操作常用操作语句 新增、修改字段等

   2023-06-23 网络整理佚名2010
核心提示:2,当要从一个表中取出数据插入到该新表(两个表的表结构不同)时用:3,只是复制表结构时用:4,复制表结构的同时并把数据复制时用:@为服务器写个名称以便在下面使用;无需改动;@是远程数据库所在的IP地址--删除表字段和约束2)删除所有表数据的SQL4)删除某字段的约束--为字段添加新默认值和约束--修改表中已经存在的列的属性(不包括约束,但可以为主键或递增或唯一)

普通sql

--查询数据库连接数
SELECT * FROM master.dbo.sysprocesses WHERE dbid IN
(
SELECT dbid FROM master.dbo.sysdatabases
WHERE NAME=\'数据库表名\'
)
--查询锁表
select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName 
from sys.dm_tran_locks where resource_type=\'OBJECT\'
ORDER BY request_session_id
--杀掉进程
declare @spid int 
Set @spid = 182 --锁表进程
declare @sql varchar(1000)
set @sql=\'kill \'+cast(@spid as varchar)
exec(@sql)

--远程查询
--开户外围
exec sp_configure \'show advanced options\',1
reconfigure
exec sp_configure \'Ad Hoc Distributed Queries\',1
reconfigure
-------------------------------
select * from openrowset( \'SQLOLEDB\', \'服务器ip\'; \'数据库登录账号\'; \'数据库登录密码\',数据库名.dbo.表名)
-------------------------------
--关闭外围
exec sp_configure \'show advanced options\',0
reconfigure
exec sp_configure \'Ad Hoc Distributed Queries\',0
reconfigure


--压缩备份

@(50)

@(50)

设置@=\'数据\'

设置@=\'d:\\.bak\'

@ 到磁盘 = @ 带初始化,统计数据 = 20





--
sql 事务 BEGIN TRAN 事物名 IF(@@ERROR<>0)BEGIN ROLLBACK TRAN 事物名;RETURN;END COMMIT TRAN 事物名 --数据库清缓存 DBCC DROPCLEANBUFFERS --忽略自增列 按照sql语句的id新增 SET IDENTITY_INSERT [dbo].[EduMenuFunction] ON --插入语句 SET IDENTITY_INSERT [dbo].[EduMenuFunction] OFF --修改语句联表修改 UPDATE S_GB_StudentBasicInfo SET BH =ci.BH from S_GB_StudentBasicInfo sbi WITH(NOLOCK),C_GB_ClassInfo ci WITH(NOLOCK) where sbi.BJID=CONVERT(nvarchar(20),ci.ID) UPDATE A SET A.c2 =B.c3 from A inner join B on A.c1=B.c1 --创建索引 CREATE INDEX DataReportIndex ON S_GB_StudentBasicInfo_DataReport(SFZJH (ASC), XB (ASC), CSRQ (ASC), DataYear (ASC), STATUS (ASC)) --修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 add constraint 约束名字 DEFAULT 默认值 for 字段名称 -------说明:添加一个表的字段的约束并指定默认值 --修改字段名: alter table 表名 rename column A to B --修改字段类型: alter table 表名 alter column UnitPrice decimal(18, 4) not null --增加字段: alter table 表名 ADD 字段 类型 NOT NULL Default 0 --添加字段 [CardRecord][Birthday] IF NOT EXISTS( SELECT * from syscolumns where [id]=object_id(\'CardRecord\') AND [name]=\'Birthday\' ) BEGIN Alter Table CardRecord Add Birthday DATETIME NOT NULL DEFAULT(\'1900-01-01 00:00:00\') ; EXEC sp_addextendedproperty \'MS_Description\', \'出生日期\', \'user\', dbo, \'table\',CardRecord, \'column\', Birthday; END --清除表数据,自增列从1开始 truncate table 表名; --查询所有的子节点 with cte as ( select * from base_Company where Id = \'E7F5395E-6D11-4490-B3AD-513574268CF6\' --查询节点 union all select a.* from base_Company a join cte b on a.ParentId = b.id where a.id is not null ) select * from cte --创建数据库 USE master create database AdayMS on primary -- 默认就属于primary文件组,可省略 ( name=\'AdayMS_data\', -- 主数据文件的逻辑名称 filename=\'E:\数据库\jaday\AdayMS\AdayMS_data.mdf\', -- 主数据文件的物理名称 size=5mb, --主数据文件的初始大小 maxsize=100mb, -- 主数据文件增长的最大值 filegrowth=15%--主数据文件的增长率 ) log on ( name=\'AdayMS_log\', filename=\'E:\数据库\jaday\AdayMS\AdayMS_log.ldf\', size=2mb, filegrowth=1mb ) --根据时间筛选 datediff(dd,时间字段,当前时间)>=0 --获取新增数据的标识列 insert语句;select @@IDENTITY --获取数据库表和视图中的所有字段 SELECT 列序号 = A.COLORDER, 列名 = A.NAME, --主键 = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= \'PK \' AND PARENT_OBJ=A.ID AND NAME IN ( --SELECT NAME FROM SYSINDEXES WHERE INDID IN( --SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN \'√ \' ELSE \' \' END, 类型 = B.NAME, --允许空 = CASE WHEN A.ISNULLABLE=1 THEN \'√ \'ELSE \' \' END, 列说明 = ISNULL(G.[VALUE], \' \') FROM SYSCOLUMNS A LEFT JOIN SYSTYPES B ON A.XUSERTYPE=B.XUSERTYPE INNER JOIN SYSOBJECTS D ON A.ID=D.ID AND D.XTYPE= \'U \' AND D.NAME <> \'DTPROPERTIES \' LEFT JOIN SYSCOMMENTS E ON A.CDEFAULT=E.ID LEFT JOIN sys.extended_properties G ON A.ID=G.major_id AND A.COLID=G.minor_id LEFT JOIN sys.extended_properties F ON D.ID=F.major_id AND F.minor_id=0 WHERE (D.name=\'@TableName\' ) ORDER BY A.ID,A.COLORDER --视图 SELECT 列序号 = A.COLORDER, 列名 = A.NAME, --主键 = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= \'PK \' AND PARENT_OBJ=A.ID AND NAME IN ( --SELECT NAME FROM SYSINDEXES WHERE INDID IN( --SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN \'√ \' ELSE \' \' END, 类型 = B.NAME, --允许空 = CASE WHEN A.ISNULLABLE=1 THEN \'√ \'ELSE \' \' END, 列说明 = ISNULL(G.[VALUE], \' \') FROM SYSCOLUMNS A LEFT JOIN SYSTYPES B ON A.XUSERTYPE=B.XUSERTYPE INNER JOIN SYSOBJECTS D ON A.ID=D.ID AND d.xtype=\'V\' AND D.NAME <> \'dtproperties \' LEFT JOIN SYSCOMMENTS E ON A.CDEFAULT=E.ID LEFT JOIN sys.extended_properties G ON A.ID=G.major_id AND A.COLID=G.minor_id LEFT JOIN sys.extended_properties F ON D.ID=F.major_id AND F.minor_id=0 WHERE (D.name=\'@ViewName\' ) GROUP BY A.COLORDER ,A.NAME ,B.NAME ,ISNULL(G.[VALUE], \' \') ,A.ID ORDER BY A.ID,A.COLORDER --触发器 ALTER TRIGGER [TRG_QBItem] ---------项触发器------------------- ON [dbo].[QBItem] FOR delete AS delete from QBOptions where ItemId in (select ItemId from deleted) --计算执行sql语句的时间 --首先 在各个sql 执行语句前加: declare @time datetime set @time=getdate() --然后在sql执行语句后加上: select [语句执行花费时间(毫秒)]=datediff(ms,@time,getdate())

1、仅插入简单有限行数据时:

要插入的表名称(列名称 1、列名称 2,...)

\'列名 1 所需的数据\',\'列名 2 所需的数据\',... union

\'列名 1 所需的数据\',\'列名 2 所需的数据\',... union

\'列名 1 所需的数据\',\'列名 2 所需的数据\',...

...

例如:

进入

(学号、姓名、性别、出生日期、院校代码、成绩)

\'\',\'张三玉\',\'女\',\'1987-10-5\',\'01\',88工会

\'\',\'李四\',\'男\',\'1986-4-18\',\'01\',76联合

\'\',\'王武\',\'男\',\'1986-5-18\',\'03\',94工会

\'\',\'王晓林\',\'女\',\'1985-11-6\',\'03\',37联合

\'\',\'赵流芳\',\'男\',\'1987-12-28\',\'03\',55联合

\'\',\'欧阳晨琪\',\'男\',\'1986-1-1\',\'02\',92

2、当你想从一个表中取出数据插入到新表中时(两个表的表结构不同):使用:

新表名称(列名称1,列名称2,...)

旧表的列名1作为列名1,旧表的列名2作为旧表表名的列名2

3、复制表结构时只需使用:

* 从(原始表)进入(新表)其中 11

4、复制表结构和复制数据时,使用:

* 从(原表)进入(新表)

远程sql插入

// 首先打开远程连接

执行\'显示\',1

执行\'临时\',1

插入语句

* INTO 新表 FROM

(\'\',\'=.;

uid=sa;pwd=;=数据库名称;\')

.数据库名.

--服务器之间建立连接的参数说明:@write a name for the for below; 无需改变; @是远程数据库的IP地址

EXEC @=\'\',@=\'\',@=\'\',@=\'192.168.85.251\'

--登录服务器参数说明:这里的@名称要与上面的@相同; @登录服务器用户名; @登录服务器密码

执行 dbo。 @=N\'\', @=N\'False\', @=NULL, @=N\'sa\', @=N\'123\'

go * from [].[库名].[dbo]. [表名]GO

--关闭服务器连接

EXEC n \'\' , NULL

执行\'\'

-- 删除表字段和约束

@姓名 (50)

@name = b.name from b join a on b.id = a。

其中 a.id = (\'\')

和 a.name =\'\'

exec(\'更改表删除\' + @name)

更改表 dbo.

降低

1)禁止所有表约束的SQL

\'\'+名称+\'\'ype=\'U\'

2)删除所有表数据的SQL

\'\'+=\'U\'

3)恢复所有表约束的SQL

\'\'+名称+\'\'ype=\'U\'

4)删除某个字段的约束

@(100)

--DF 是约束名称前缀

@name=b.,.id=(\'表名\')andb.id=a..name=\'字段名\'andb.\'DF%\'

--去除约束

表名@名称

-- 为字段添加新的默认值和约束

表名@(0)FOR[字段名]

--去除约束

约束名称

-- 修改表中已经存在的列的属性(不包括约束,但可以是主键或增量或唯一)

列名

-- 添加列约束

列名(0) FOR 列名

-- 添加范围限制

(性别(\'M\',\'F\'))

 
反对 0举报 0 收藏 0 打赏 0评论 0
 
更多>同类资讯
推荐图文
推荐资讯
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报
Powered By DESTOON