Sql Server數(shù)據(jù)庫(kù)常用Transact-SQL腳本(推薦)
Transact-SQL
Transact-SQL(又稱(chēng) T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 實(shí)現(xiàn),與 Oracle 的 PL/SQL 性質(zhì)相近(不只是實(shí)現(xiàn) ANSI SQL,也為自身數(shù)據(jù)庫(kù)系統(tǒng)的特性提供實(shí)現(xiàn)支持),在 Microsoft SQL Server 和 Sybase Adaptive Server 中仍然被使用為核心的查詢(xún)語(yǔ)言。
數(shù)據(jù)庫(kù)
1、創(chuàng)建數(shù)據(jù)庫(kù)
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、查看數(shù)據(jù)庫(kù)
SELECT name, database_id, create_date FROM sys.databases ;
3、刪除數(shù)據(jù)庫(kù)
DROP DATABASE Sales;
表
1、創(chuàng)建表
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、主鍵
--在現(xiàn)有表中創(chuàng)建主鍵 ALTER TABLE Production.TransactionHistoryArchive ADD CONSTRAINT PK_TransactionHistoryArchive_TransactionID PRIMARY KEY CLUSTERED (TransactionID); --在新表中創(chuàng)建主鍵 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、創(chuàng)建視圖
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;
存儲(chǔ)過(guò)程
1、創(chuàng)建存儲(chǔ)過(guò)程
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、刪除存儲(chǔ)過(guò)程
DROP PROCEDURE P_UspGetEmployeesTest;
3、執(zhí)行存儲(chǔ)過(guò)程
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、重命名存儲(chǔ)過(guò)程
EXEC sp_rename 'P_UspGetAllEmployeesTest', 'P_UspEveryEmployeeTest2';
5、帶有輸出參數(shù)的存儲(chǔ)過(guò)程
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 --調(diào)用 DECLARE @SalesYTDBySalesPerson money; EXECUTE P_UspGetEmployeeSalesYTD N'Blythe', @SalesYTD = @SalesYTDBySalesPerson OUTPUT; GO
數(shù)據(jù)類(lèi)型

總結(jié)
以上所述是小編給大家介紹的Sql Server數(shù)據(jù)庫(kù)常用Transact-SQL腳本,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- SQL Server Transact-SQL編程詳解
- SQL Server 的T-SQL高級(jí)查詢(xún)?cè)斀?/a>
- SQL Server中T-SQL 數(shù)據(jù)類(lèi)型轉(zhuǎn)換詳解
- SQLServer用t-sql命令批量刪除數(shù)據(jù)庫(kù)中指定表(游標(biāo)循環(huán)刪除)
- 如何在SQL Server 2008下輕松調(diào)試T-SQL語(yǔ)句和存儲(chǔ)過(guò)程
- SQL Server中的T-SQL的基本對(duì)象
- SQLServer 2008 新增T-SQL 簡(jiǎn)寫(xiě)語(yǔ)法
- SQL?Server使用T-SQL語(yǔ)句批處理
相關(guān)文章
sql server 中合并某個(gè)字段值的實(shí)例
sql server 中合并某個(gè)字段值的實(shí)例,需要的朋友可以參考一下2013-03-03
IN&EXISTS與NOT IN&NOT EXISTS 的優(yōu)化原則小結(jié)
下面只是從理論上提出了一些建議,最好的原則是大家在上面的基礎(chǔ)上,能夠使用執(zhí)行計(jì)劃來(lái)分析,得出最佳的語(yǔ)句的寫(xiě)法。2010-06-06
N字符在Sql Server字段類(lèi)型中的重要性概述
一般如果用到中文或者其它特殊字符,我就會(huì)使用n開(kāi)頭的類(lèi)型,否則的話(huà)直接使用var開(kāi)頭的,接下來(lái)講解一下N字符在Sql Server字段類(lèi)型中的重要性,感興趣的朋友不妨了解下,或許對(duì)你有所幫助2013-02-02
SQL Server誤區(qū)30日談 第9天 數(shù)據(jù)庫(kù)文件收縮不會(huì)影響性能
收縮文件的過(guò)程非常影響性能,這個(gè)過(guò)程需要移動(dòng)大量數(shù)據(jù)從而造成大量IO,這個(gè)過(guò)程會(huì)被記錄到日志從而造成日志暴漲,相應(yīng)的,還會(huì)占去大量的CPU資源2013-01-01
sqlserver 多表關(guān)聯(lián)時(shí)在where語(yǔ)句中慎用trim()方法
最近做的一個(gè)項(xiàng)目由于前期數(shù)據(jù)庫(kù)設(shè)計(jì)不合理,導(dǎo)致多表關(guān)聯(lián)的主外鍵長(zhǎng)度設(shè)計(jì)不一致,以致過(guò)長(zhǎng)主外鍵中過(guò)長(zhǎng)的字段在填入相同字段時(shí),多余部分被填入空字符。迫于無(wú)奈,就在多表關(guān)聯(lián)的where語(yǔ)句中使用了trim()方法。2009-09-09
多表關(guān)聯(lián)同時(shí)更新多條不同的記錄方法分享
因?yàn)轫?xiàng)目要求實(shí)現(xiàn)一次性同時(shí)更新多條不同的記錄的需求,和同事討論了一個(gè)比較不錯(cuò)的方案,這里供大家參考下2011-10-10

