前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >表操作

表操作

作者头像
Vincent-yuan
发布2020-04-14 17:02:53
6330
发布2020-04-14 17:02:53
举报
文章被收录于专栏:Vincent-yuanVincent-yuan

这节记录表的相关操作。

1.创建表
代码语言:javascript
复制
CREATE TABLE dbo.PurchaseOrderDetail  
(  
    PurchaseOrderID int NOT NULL  
    ,LineNumber smallint NOT NULL  
    ,ProductID int NULL  
    ,UnitPrice money NULL  
    ,OrderQty smallint NULL  
    ,ReceivedQty float NULL  
    ,RejectedQty float NULL  
    ,DueDate datetime NULL  
);  
2.删除表
代码语言:javascript
复制
DROP TABLE dbo.PurchaseOrderDetail;  
3.重命名表
代码语言:javascript
复制
USE AdventureWorks2012;   
GO  
EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr'; 
4.查看表定义
代码语言:javascript
复制
select * from sys.tables
where object_id = OBJECT_ID('Person.Address')
5.查看依赖项

a.查看表依赖的对象

代码语言:javascript
复制
USE AdventureWorks2012;  
GO  
SELECT * FROM sys.sql_expression_dependencies  
WHERE referencing_id = OBJECT_ID(N'Production.vProductAndDescription');   
GO  

即查看表作为引用项时的情况(referencing_id)。就是它引用别人

b.查看依赖于表的对象

代码语言:javascript
复制
USE AdventureWorks2012;   
GO  
SELECT * FROM sys.sql_expression_dependencies  
WHERE referenced_id = OBJECT_ID(N'Production.vProductAndDescription');   
GO  

表作为被引用项的情况(referenced_id)

6.向表中添加列
代码语言:javascript
复制
ALTER TABLE dbo.doc_exa ADD column_b VARCHAR(20) NULL, column_c INT NULL ;
7.从表中删除列
代码语言:javascript
复制
ALTER TABLE dbo.doc_exb DROP COLUMN column_b;
8.对列重命名
代码语言:javascript
复制
EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN';
9.复制列

a.只将表定义从一个表复制到另一个表,不复制表数据。

即只复制表的列

代码语言:javascript
复制
select * 
into AddressTemp
from Person.Address
where 1<>1

b.将数据从一个表复制到另一个表

代码语言:javascript
复制
USE AdventureWorks2012;  
GO  
CREATE TABLE dbo.EmployeeSales  
( BusinessEntityID   varchar(11) NOT NULL,  
  SalesYTD money NOT NULL  
);  
GO  
INSERT INTO dbo.EmployeeSales  
    SELECT BusinessEntityID, SalesYTD   
    FROM Sales.SalesPerson;  
GO
10.修改列

修改列的数据类型

代码语言:javascript
复制
CREATE TABLE dbo.doc_exy (column_a INT ) ;  
GO  
INSERT INTO dbo.doc_exy (column_a) VALUES (10) ;  
GO  
ALTER TABLE dbo.doc_exy ALTER COLUMN column_a DECIMAL (5, 2) ;  
GO  
11.指定计算列

计算列是虚拟列,并非实际存储在表中,除非此列标记为 PERSISTED。 计算列的表达式可以使用其他列中的数据来计算其所属列的值。

示例1.在创建表时指定计算列

创建一个表,其中的计算列将 QtyAvailable 列的值乘以 UnitPrice 列的值。

代码语言:javascript
复制
CREATE TABLE dbo.Products
   (
      ProductID int IDENTITY (1,1) NOT NULL
      , QtyAvailable smallint
      , UnitPrice money
      , InventoryValue AS QtyAvailable * UnitPrice
    )
;
-- Insert values into the table.
INSERT INTO dbo.Products (QtyAvailable, UnitPrice)
   VALUES (25, 2.00), (10, 1.5)
;
-- Display the rows in the table.
SELECT ProductID, QtyAvailable, UnitPrice, InventoryValue
FROM dbo.Products
;

示例2:将新计算列定义添加到现有表中

代码语言:javascript
复制
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5)
;

(可选)添加 PERSISTED 参数,将计算值以物理方式存储到表中:

代码语言:javascript
复制
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5) PERSISTED
;

示例3:将现有列更改为计算列

代码语言:javascript
复制
ALTER TABLE dbo.Products DROP COLUMN RetailValue
;
GO
ALTER TABLE dbo.Products ADD RetailValue AS (QtyAvailable * UnitPrice * 1.5)
;
12.指定列的默认值

方式一:alter table

代码语言:javascript
复制
CREATE TABLE dbo.doc_exz (column_a INT, column_b INT); -- Allows nulls.
GO
INSERT INTO dbo.doc_exz (column_a) VALUES (7);
GO
ALTER TABLE dbo.doc_exz
  ADD CONSTRAINT DF_Doc_Exz_Column_B
  DEFAULT 50 FOR column_b;
GO

方式二:create table

代码语言:javascript
复制
CREATE TABLE dbo.doc_exz (
      column_a INT,
      column_b INT DEFAULT 50);

方式三:命名的 CONSTRAINT

代码语言:javascript
复制
 CREATE TABLE dbo.doc_exz (
      column_a INT,
      column_b INT CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-04-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建表
  • 2.删除表
  • 3.重命名表
  • 4.查看表定义
    • 5.查看依赖项
    • 6.向表中添加列
    • 7.从表中删除列
    • 8.对列重命名
    • 9.复制列
    • 10.修改列
    • 11.指定计算列
    • 12.指定列的默认值
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档