Sql Server数据库常用Transact-SQL脚本(推荐)

所属分类: 数据库 / MsSql 阅读数: 1373
收藏 0 赞 0 分享

Transact-SQL

Transact-SQL(又称 T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 实现,与 Oracle 的 PL/SQL 性质相近(不只是实现 ANSI SQL,也为自身数据库系统的特性提供实现支持),在 Microsoft SQL Server 和 Sybase Adaptive Server 中仍然被使用为核心的查询语言。

数据库

1、创建数据库

USE master ; 
GO 
CREATE DATABASE Sales 
ON 
( NAME = Sales_dat, 
 FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\saledat.mdf', 
 SIZE = 10, 
 MAXSIZE = 50, 
 FILEGROWTH = 5 ) 
LOG ON 
( NAME = Sales_log, 
 FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\salelog.ldf', 
 SIZE = 5MB, 
 MAXSIZE = 25MB, 
 FILEGROWTH = 5MB ) ; 
GO 

2、查看数据库

SELECT name, database_id, create_date 
FROM sys.databases ; 

3、删除数据库

DROP DATABASE Sales;

1、创建表

CREATE TABLE PurchaseOrderDetail 
( 
 ID uniqueidentifier 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、删除表

DROP TABLE dbo.PurchaseOrderDetail; 

3、重命名表

EXEC sp_rename 'Sales.SalesTerritory', 'SalesTerr'; 

1、添加列

ALTER TABLE dbo.doc_exa ADD column_b VARCHAR(20) NULL, column_c INT NULL ;

2、删除列

ALTER TABLE dbo.doc_exb DROP COLUMN column_b; 

3、重命名列

EXEC sp_rename 'Sales.SalesTerritory.TerritoryID', 'TerrID', 'COLUMN'; 

约束

1、主键

--在现有表中创建主键
ALTER TABLE Production.TransactionHistoryArchive
 ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID);

--在新表中创建主键
CREATE TABLE Production.TransactionHistoryArchive1
 (
  TransactionID int IDENTITY (1,1) NOT NULL
  , CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID)
 )
;

--查看主键 
SELECT name 
FROM sys.key_constraints 
WHERE type = 'PK' AND OBJECT_NAME(parent_object_id) = N'TransactionHistoryArchive'; 
GO 
--删除主键
ALTER TABLE Production.TransactionHistoryArchive 
DROP CONSTRAINT PK_TransactionHistoryArchive_TransactionID; 
GO 

视图

1、创建视图

CREATE VIEW V_EmployeeHireDate 
AS 
SELECT p.FirstName, p.LastName, e.HireDate 
FROM HumanResources.Employee AS e JOIN Person.Person AS p 
ON e.BusinessEntityID = p.BusinessEntityID ; 
GO 

2、删除视图

DROP VIEW V_EmployeeHireDate; 

存储过程

1、创建存储过程

CREATE PROCEDURE P_UspGetEmployeesTest 
 @LastName nvarchar(50), 
 @FirstName nvarchar(50) 
AS 
 SELECT FirstName, LastName, Department 
 FROM HumanResources.vEmployeeDepartmentHistory 
 WHERE FirstName = @FirstName AND LastName = @LastName 
 AND EndDate IS NULL; 
GO 

2、删除存储过程

DROP PROCEDURE P_UspGetEmployeesTest; 

3、执行存储过程

EXEC P_UspGetEmployeesTest N'Ackerman', N'Pilar'; 
-- Or 
EXEC P_UspGetEmployeesTest @LastName = N'Ackerman', @FirstName = N'Pilar'; 
GO 
-- Or 
EXECUTE P_UspGetEmployeesTest @FirstName = N'Pilar', @LastName = N'Ackerman'; 
GO 

4、重命名存储过程

EXEC sp_rename 'P_UspGetAllEmployeesTest', 'P_UspEveryEmployeeTest2'; 

5、带有输出参数的存储过程

CREATE PROCEDURE P_UspGetEmployeeSalesYTD 
@SalesPerson nvarchar(50), 
@SalesYTD money OUTPUT 
AS 
 SELECT @SalesYTD = SalesYTD 
 FROM SalesPerson AS sp 
 JOIN vEmployee AS e ON e.BusinessEntityID = sp.BusinessEntityID 
 WHERE LastName = @SalesPerson; 
RETURN 
GO

--调用
DECLARE @SalesYTDBySalesPerson money; 
EXECUTE P_UspGetEmployeeSalesYTD 
 N'Blythe', 
 @SalesYTD = @SalesYTDBySalesPerson OUTPUT; 
GO 

数据类型

以上所述是小编给大家介绍的Sql Server数据库常用Transact-SQL脚本,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

更多精彩内容其他人还在看

sqlserver中将varchar类型转换为int型再进行排序的方法

sql中把varchar类型转换为int型然后进行排序,如果我们数据库的ID设置为varchar型的 在查询的时候order by id的话
收藏 0 赞 0 分享

在SQL Server中使用SQL语句查询一个存储过程被其它所有的存储过程引用的存储过程名

在项目开发中如果有时修改了一个存储过程,但是如何能够快速的查找到使用了这个存储过程的其它存储过程呢
收藏 0 赞 0 分享

sqlserver bcp(数据导入导出工具)一般用法与命令详解

bcp是SQL Server中负责导入导出数据的一个命令行工具,它是基于DB-Library的,并且能以并行的方式高效地导入导出大批量的数据
收藏 0 赞 0 分享

重命名SQLServer数据库的方法

本文讲解重命名SQLServer 数据库,包括物理文件名、逻辑文件名的改名
收藏 0 赞 0 分享

SQL Server中通过reverse取某个最后一次出现的符号后面的内容(字符串反转)

昨天在项目中遇到了一个非常简单的问题,需要把SQL Server数据库中保存的一段路径地址取出其文件名,但SQL Server又没有现成的方法,最后在网上找到这样的一个方法,原理是先将字符串反转,取出第一个/的位置,从头进行截取后再次反转
收藏 0 赞 0 分享

使用SqlBulkCopy时应注意Sqlserver表中使用缺省值的列

今天,想将以前做的一个程序增加点功能,原本就使用SqlBulkCopy批量、定时的从目录中的txt文件导入数据到Sqlserver中。以前一直都使用正常,但是不知怎的就老是出现一个错误
收藏 0 赞 0 分享

Sqlserver 2000/2005/2008 的收缩日志方法和清理日志方法

讲解一下sql 2005日志怎么清理。一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大
收藏 0 赞 0 分享

SQL Server 2000 清理日志精品图文教程

SQL Server 2000 数据库日志太大!如何清理SQL Server 2000的日志呢
收藏 0 赞 0 分享

SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)

如何在SQL中对行进行动态编号,加行号这个问题,在数据库查询中,是经典的问题
收藏 0 赞 0 分享

sql分类汇总及Select的自增长脚本

对错误信息进行分类汇总,并实现错误数据的自增长编号
收藏 0 赞 0 分享
查看更多