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

常用sql

--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())
时间: 2024-08-10 21:30:35

sql 操作常用操作语句 新增、修改字段等的相关文章

SQL两表关联查询&批量修改字段值

SQL关联查询&修改字段,正确范例如下: --批量修改报告单位名称&更新时间 --tt和tp两表关联查询,将符合条件的tt表中的principal字段更新到tp表的ruperson字段 merge into nhis34.t_publicplaces tp using standard.t_organization tt on (tt.orgcode = tp.r_orgcode and tp.create_time > '2015-05-07 00:00:00') when mat

【半转贴】解决SQL SERVER 2008数据库表中修改字段后不能保存

SQL SERVER 2008数据库表中修改字段后不能保存,这种情况将阻止保存要求重新创建表的更改一项的钩钩去掉就OK了 找到工具>选项>Designers>表设计器和数据库设计器 然后将“阻止保存要求重新创建表的更改” 的这一项的钩钩去掉就OK了 图片来自:http://www.jb51.net/article/42727.htm 刚好碰到这个问题,用的就是上面的方法解决的 [半转贴]解决SQL SERVER 2008数据库表中修改字段后不能保存

sql/plus 常用操作

一.sys用户和system用户Oracle安装会自动的生成sys用户和system用户(1).sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install(2).system用户是管理操作员,权限也很大.具有sysoper角色,没有create database的权限,默认的密码是manager(3).一般讲,对数据库维护,使用system用户登录就可以拉注意:也就是说sys和system这两个用户最大的

关于SQL的常用操作(增、删、改、查)

关于SQL的常见操作主要是增.删.改.查. 1.增,顾名思义就是新增数据(insert into).该语句用于向表中插入新纪录.insert into有两种用法. (1).无需指定要插入数据的列名,只提供被插入的值, 语法:INSERT INTO table_name VALUES (value1,value2,value3,...); 但是这种方法要注意一点,那就是需要列出插入行中的每一列数据,如果某一列没有数据的话,可以使用引号替代,如果没有列出插入行中每一列数据,就会报错. (2).指定列

SQL SERVER数据库的表中修改字段的数据类型后,不能保存

在数据库里面建了一个表,可是由于对SQL SERVER的建表功能不熟悉,不知道把主键设成什么是好,就先设置了个TEXT类型,可是后来朋友们告诉我说,TEXT类型容易让数据文件变得很大,还 是改成一个int型比较好.就打算修改字段类型.可是总是提示不让我修改,那个意思就是说你只能重建这个表.ACCESS都可以让随便修改类型,为啥 SQL SERVER就不行,不信这个邪,还是问问专业测试SQL SERVER的人员吧,问了半天没有反应,看来还是得自己去BAIDU一下,这次搜索很顺利,直接找到了心满意足

Sql Server 常用操作远程桌面语句

1.是否开启远程桌面,1表示关闭,0表示开启 EXEC master..xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections' 2.读取远程桌面端口 EXEC master..xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\TerminalServer\WinSt

【sql server常用操作{增删改查}】

use DB_x   go   drop database DB_y   create database DB_y --创建数据库   on primary --指定主数据文件   (   name=db, --逻辑名   filename='d:\db.mdf', --文件位置   size=3MB, --初始大小   maxsize=10MB, --最大增长   filegrowth=1MB --增长方式   )   log on --指定日志文件   (   name=ldb,   fil

SQL Server 常用操作XML

--修改FunctionNo节点值,@OperateFunctionNo为参数 set @DataXml.modify('replace value of (/CrudData/FunctionNo/text())[1] with sql:variable("@OperateFunctionNo")') --删除节点 SET @DataXml.modify('delete (/CrudData/DataKey)[1]') --插入节点 SET @DataXml.modify('inse

MS SQL Server 常用操作

以下为常用: --发邮件应该很常用吧 exec msdb.dbo.sp_send_dbmail @profile_name = @mail_profile, --邮件配置主档,通过数据库邮件配置向导生成,一般叫'dba_profile',详细看下图 @recipients = @email_recipients, --地址,多个用英文逗号隔开 @copy_recipients = @mail_copy_recipient, --CC地址 @blind_copy_recipients = @mai