sql server常用语法

sql

一、表篇

1.清空表内容

TRUNCATE TABLE your_table_name;

2.存在删除

​
IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME ='表名')
DROP TABLE 表名;--存在则删除

3.连表插入

insert into 表(字段,字段,字段,字段)
select 字段,字段,字段,字段 from 表
注意:插入字段必须与查询字段相匹配

例:

insert into LVS_WCB_Standard_Parameter(OwnerID,OwnerName,BookerID,BookerName,AddDate,
UpdateDate,Status,
DeviceQty,--数量
MastPKID,
MULT,--报价参数模板
SBAmount,--设备单价
SBJSAmount,--设备结算单价
AZAmount,--安装单价
AZJSAmount--结算安装单价
)
select 
{0} as OwnerID,
'{1}' as OwnerName,
{0} as BookerID,
'{1}' as BookerName,
GETDATE() as AddDate,
GETDATE() as UpdateDate,
2 as Status,
1 as DeviceQty,--数量
{3} as MastPKID,
a.GroupName as MULT,--报价参数模板
a.SBJSAmount as SBAmount,--设备单价
a.SBJSAmount as SBJSAmount,--设备结算单价
0 AZAmount,--安装单价
0 AZJSAmount--结算安装单价
from
LVS_Contract_ContractManageBJ  a where a.SystemNo='{2}'

4.连表更新

update 表 set a.字段=c.字段 from 表 a 
left join  表 b on a.关联字段=b.关联字段 
left join 表 c on b.关联关系=c.关联关系
where a.MastPKID

例:

update a set a.MULT=c.GroupName,a.DEDATE=c.PlanDeliveryDate,a.SBAmount=c.SBJSAmount  from LVS_WCB_Standard_Parameter a left join  LVS_Contract_ContractManage b on a.MastPKID=b.PKID left join LVS_Contract_ContractManageBJ c on b.baojiaNo=c.SystemNo
where a.MastPKID={0}

二、列篇

1.修改旧列名为新列名

EXEC sp_rename 'LVS_Base_SalesContractPartsConfig.Units', 'PartNumber', 'COLUMN';

其中 Units为旧列

PartNumber为新列

LVS_Base_SalesContractPartsConfig 为修改的表

2.为表新增一列

ALTER TABLE 表 
ADD 列名 类型

3.修改当前列的长度

注:遵循小改大原则,如果该列有内容且占有50字符那么不可以改小于50字符

ALTER TABLE 表名 ALTER COLUMN 字段名 新数据类型(新长度);

三、视图篇

1.存在删除

IF OBJECT_ID('dbo.MyView', 'V') IS NOT NULL  
    DROP VIEW dbo.MyView;  
GO

OBJECT_ID函数接收两个参数:

  1. 第一个参数是视图的完全限定名(包括架构名,这里假设是dbo),格式为[架构名].[视图名]

  2. 第二个参数是一个字符串,用于指定你想要查询的对象类型。对于视图,这个值应该是'V'

2.删除

drop view VIEW_CTABLE

四、存储过程篇

1.存在删除

IF OBJECT_ID('dbo.MyStoredProcedure', 'P') IS NOT NULL  
    DROP PROCEDURE dbo.MyStoredProcedure;  
GO

OBJECT_ID函数接收两个参数:

  1. 第一个参数是存储过程的完全限定名(包括架构名,这里假设是dbo),格式为[架构名].[存储过程名]

  2. 第二个参数是一个字符串,用于指定你想要查询的对象类型。对于存储过程,这个值应该是'P'

2.删除

 DROP PROCEDURE dbo.MyStoredProcedure;  

五、约束篇

1.查看当前数据库所有 约束名、约束所在表、约束所在列

SELECT   
    k.name AS ConstraintName,  
    OBJECT_NAME(p.OBJECT_ID) AS TableName,  
    COL_NAME(pc.OBJECT_ID,pc.column_id) AS ColumnName  
FROM   
    sys.key_constraints k  
    INNER JOIN sys.tables p ON k.parent_object_id = p.object_id  
    INNER JOIN sys.index_columns ic ON ic.object_id = p.object_id AND ic.index_id = k.unique_index_id  
    INNER JOIN sys.columns pc ON ic.object_id = pc.object_id AND ic.column_id = pc.column_id  
WHERE   
    k.type = 'PK'

六、函数篇

1.如果条件为 TRUE,则返回 YES",如果条件为 FALSE则返回 "NO":

SELECT IIF(500<1000, 'YES', 'NO');

2.解决datetime类型为空赋1900默认值问题

select IIF(getdate() is null,'',convert(varchar(20),getdate(),23))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值