1. 程式人生 > 資料庫 >Sql Server資料庫常用Transact-SQL指令碼(推薦)

Sql Server資料庫常用Transact-SQL指令碼(推薦)

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指令碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!如果你覺得本文對你有幫助,歡迎轉載,煩請註明出處,謝謝!