--
USE AdventureWorks
GO
SELECT * FROM sys.types
use AdventureWorks
go
select * from sys.schemas where principal_id = 1
SELECT t.name FROM sys.tables t ,sys.schemas m WHERE t.schema_id = m.schema_id and m.name = 'HumanResources'
USE AdventureWorks;
DECLARE @dateTemp DATETIME;
SET @dateTemp = GETDATE();
EXEC [AdventureWorks].[dbo].[uspGetBillOfMaterials] 811, @dateTemp;
EXEC dbo.uspGetEmployeeManagers 1;
EXEC dbo.uspGetManagerEmployees 185;
SELECT CustomerID AS Id,
('CN' + dbo.ufnLeadingZeros(CustomerID)) AS NewAccountNumber
FROM Sales.Customer
ORDER BY CustomerID;
SELECT ContactID, FirstName, LastName, JobTitle, ContactType
FROM dbo.ufnGetContactInformation(100);
SELECT ProductID AS N'産品編号', ListPrice AS N'标價',
dbo.ufnGetProductDealerPrice(ProductID, StartDate) AS N'批發價',
StartDate AS N'開始日期',EndDate AS N'結束日期'
FROM Production.ProductListPriceHistory
WHERE ProductID = 707
ORDER BY ProductID, StartDate;
SELECT C.*
FROM Person.Contact AS C
JOIN Sales.Individual AS I
ON C.ContactID = I.ContactID
JOIN Sales.Customer AS Cu
ON I.CustomerID = Cu.CustomerID
WHERE Cu.CustomerType = 'I' AND LastName='Edwards'
ORDER BY LastName, FirstName ;
SELECT Name,C.AccountNumber
FROM Sales.Store AS S
JOIN Sales.Customer AS C
ON S.CustomerID = C.CustomerID
WHERE C.CustomerType = N'S'
ORDER BY Name ;
SELECT S.Name AS N'商店', C.LastName AS '人名', CT.Name AS N'職位'
FROM (Person.Contact AS C
JOIN Sales.StoreContact AS SC ON C.ContactID = SC.ContactID
JOIN Person.ContactType AS CT ON
CT.ContactTypeID = SC.ContactTypeID
JOIN Sales.Store AS S ON S.CustomerID = SC.CustomerID)
WHERE (S.Name='Catalog Store')
ORDER BY S.Name ;
SELECT S.CustomerID, S.Name AS Store, A.City, SP.Name AS State, CR.Name
AS CountryRegion
JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
JOIN Person.Address AS A ON A.AddressID = CA.AddressID
JOIN Person.StateProvince SP ON
SP.StateProvinceID = A.StateProvinceID
JOIN Person.CountryRegion CR ON
CR.CountryRegionCode = SP.CountryRegionCode
WHERE SP.Name = 'Texas' and CR.Name='United States'
ORDER BY S.CustomerID ;
SELECT Name, SalesOrderNumber, OrderDate, TotalDue
JOIN Sales.SalesOrderHeader AS SO ON S.CustomerID = SO.CustomerID
WHERE Name = 'A Bike Store'
ORDER BY Name, OrderDate ;
SELECT PC.Name AS N'産品分類', PSC.Name AS N'子類型', PM.Name AS N'型号', P.Name AS N'産品名'
FROM Production.Product AS P
FULL JOIN Production.ProductModel AS PM ON PM.ProductModelID = P.ProductModelID
FULL JOIN Production.ProductSubcategory AS PSC ON PSC.ProductSubcategoryID = P.ProductSubcategoryID
JOIN Production.ProductCategory AS PC ON PC.ProductCategoryID = PSC.ProductCategoryID
WHERE PC.Name = 'Bikes'
ORDER BY PC.Name, PSC.Name ;
SELECT PM.ProductModelID, PM.Name AS [Product Model], Description, PL.CultureID, CL.Name AS Language
FROM Production.ProductModel AS PM
JOIN Production.ProductModelProductDescriptionCulture AS PL
ON PM.ProductModelID = PL.ProductModelID
JOIN Production.Culture AS CL ON CL.CultureID = PL.CultureID
JOIN Production.ProductDescription AS PD
ON PD.ProductDescriptionID = PL.ProductDescriptionID
WHERE CL.Name = 'Chinese'
ORDER BY PM.ProductModelID ;
SELECT V.Name AS N'供應商名', A.AddressLine1 as N'位址', A.City as N'城市', SP.Name AS N'州'
FROM Purchasing.Vendor AS V
JOIN Purchasing.VendorAddress AS VA ON VA.VendorID = V.VendorID
JOIN Person.Address AS A on A.AddressID = VA.AddressID
JOIN Person.StateProvince AS SP on SP.StateProvinceID = A.StateProvinceID
JOIN Person.CountryRegion AS CR ON CR.CountryRegionCode = SP.CountryRegionCode
WHERE SP.Name = 'California'
GROUP BY V.VendorID, V.Name, A.AddressLine1, A.City, SP.Name, CR.Name
ORDER BY V.VendorID;
SELECT P.ProductNumber as N'産品号',P.Name as N'産品名', V.Name as N'供應商名'
JOIN Purchasing.ProductVendor AS PV ON P.ProductID = PV.ProductID
JOIN Purchasing.Vendor AS V ON V.VendorID = PV.VendorID
WHERE V.Name ='Green Lake Bike Company'
ORDER BY P.Name ;
SELECT P.Name AS N'産品', L.Name AS N'庫存位置',
SUM(PI.Quantity)AS N'存量'
JOIN Production.ProductInventory AS PI ON P.ProductID = PI.ProductID
JOIN Production.Location AS L ON PI.LocationID = L.LocationID
WHERE P.Name = 'Road-650 Black, 60'
GROUP BY P.Name, L.Name
SELECT WorkOrderID As N'工作号',
P.Name AS N'産品名',
OrderQty AS N'數量',
DueDate AS N'日期'
FROM Production.WorkOrder W
JOIN Production.Product P ON W.ProductID = P.ProductID
WHERE P.ProductSubcategoryID IN (1, 2, 3)
AND P.Name = 'Road-550-W Yellow, 44'
ORDER BY P.Name, DueDate ;
CREATE TABLE Employees(
EmployeeID int NOT NULL,
Name nvarchar(50) NOT NULL,
Title nvarchar(30),
BirthDate datetime,
HireDate datetime,
Address nvarchar(60),
City nvarchar(15),
Region nvarchar(15),
PostalCode nvarchar(10),
Country nvarchar(15),
HomePhone nvarchar(24),
Photo p_w_picpath,
Memo nvarchar(50),
CONSTRAINT PK_Employees PRIMARY KEY CLUSTERED
(
EmployeeID ASC
)
)
IF OBJECT_ID ('dbo.table_test_6_1', 'U') IS NOT NULL --1
DROP TABLE table_test_6_1
CREATE TABLE table_test_6_1
(
id_num int IDENTITY(1,1), --2
fname varchar (20),
minit char(1),
lname varchar(30)
INSERT table_test_6_1 (fname, minit, lname) VALUES ('Karin', 'F', 'Josephs') --3
INSERT table_test_6_1 (fname, minit, lname) VALUES ('Pirkko', 'O', 'Koskitalo')
--1.查找并删除已經存在的資料表
IF OBJECT_ID ('dbo.table_test_6_2', 'U') IS NOT NULL
DROP TABLE table_test_6_2
--2.建立資料表,并插入資料
CREATE TABLE table_test_6_2 (id_num int IDENTITY(1,1), company_name sysname)
INSERT table_test_6_2(company_name) VALUES ('Test 1')
INSERT table_test_6_2(company_name) VALUES ('Test 2')
INSERT table_test_6_2(company_name) VALUES ('Test 3')
INSERT table_test_6_2(company_name) VALUES ('Test 4')
--3.檢視table_test_6_2資料表,将看到4條資料
SELECT * FROM table_test_6_2
--4.删除中斷的号
DELETE FROM table_test_6_2 WHERE id_num = 3
--5.檢視table_test_6_2資料表,将看到3條資料,辨別列記錄分别為1,2,4
--6.查找最小辨別号,結果為3
-- SET IDENTITY_INSERT ON and use in table_test_6_2 table.
SET IDENTITY_INSERT table_test_6_2 ON
DECLARE @minidentval smallint
DECLARE @nextidentval smallint
SELECT @minidentval = MIN($IDENTITY) FROM table_test_6_2
IF @minidentval = IDENT_SEED('table_test_6_2')
SELECT @nextidentval = --7.指派語句
MIN($IDENTITY) + IDENT_INCR('table_test_6_2') FROM table_test_6_2 t1
WHERE ($IDENTITY BETWEEN IDENT_SEED('table_test_6_2') AND 32766)
AND ( NOT EXISTS (SELECT * FROM table_test_6_2 t2 WHERE t2.$IDENTITY = t1.$IDENTITY + IDENT_INCR('table_test_6_2')
))
ELSE
SELECT @nextidentval = IDENT_SEED('table_test_6_2')
PRINT @nextidentval --輸入查找到的值
SET IDENTITY_INSERT table_test_6_2 OFF
IF OBJECT_ID ('dbo.table_test_6_3', 'U') IS NOT NULL
DROP TABLE table_test_6_3
CREATE TABLE table_test_6_3
id_num int IDENTITY(1,1),
fname varchar (20) NOT NULL, --1.設定為非空列
INSERT table_test_6_3 (fname, minit, lname) VALUES ('K', 'F', 'Jose')
--2.以下不能執行成功
INSERT table_test_6_3 (minit, lname) VALUES ('F', 'Jose')
--1.建立table_test_6_4表
CREATE TABLE table_test_6_4
(keycol smallint,
process_id smallint DEFAULT @@SPID, --定義預設值
date_ins datetime DEFAULT getdate(), --定義預設值
mathcol smallint DEFAULT 10 * 2, --定義預設值
char1 char(3),
char2 char(3) DEFAULT 'xyz') --定義預設值
--2.定義
/* For illustration only, use DEFAULT definitions instead.*/
CREATE DEFAULT abc_const AS 'abc';
sp_bindefault abc_const, 'table_test_6_4.char1';
--3.插入資料
INSERT INTO table_test_6_4(keycol) VALUES (1);
--4.檢視資料
SELECT * FROM table_test_6_4;
USE master;
--1.建立資料庫
CREATE DATABASE Table_test_6_5
ON PRIMARY
( NAME='Table_test_6_5_Primary',
FILENAME=
'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\Table_test_6_5_Prm.mdf',
SIZE=4MB, MAXSIZE=10MB, FILEGROWTH=1MB),
FILEGROUP Table_test_6_5_FG1 --次要資料檔案
( NAME = 'Table_test_6_5_FG1_Dat1',
FILENAME =
'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\Table_test_6_5_FG1_1.ndf',
SIZE = 1MB, MAXSIZE=10MB, FILEGROWTH=1MB),
( NAME = 'Table_test_6_5_FG1_Dat2',
'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\Table_test_6_5_FG1_2.ndf',
SIZE = 1MB, MAXSIZE=10MB, FILEGROWTH=1MB)
LOG ON
( NAME='Table_test_6_5_log',
'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\data\Table_test_6_5.ldf',
SIZE=1MB, MAXSIZE=10MB, FILEGROWTH=1MB);
--2.修改檔案組為預設
ALTER DATABASE Table_test_6_5
MODIFY FILEGROUP Table_test_6_5_FG1 DEFAULT;
--3.在使用者定義的檔案組中建立資料表
USE Table_test_6_5;
CREATE TABLE MyTable
( cola int PRIMARY KEY,
colb char(8) )
ON Table_test_6_5_FG1;--4指定檔案組
--建立資料表
CREATE TABLE Table_test_6_6
id int PRIMARY KEY,
cname char(50),
address char(50),
memo char(50),
CONSTRAINT id CHECK (id BETWEEN 0 and 10000 )
--2.執行插入資料驗證限制
INSERT INTO Table_test_6_6 values(100000,'NAME','ADDRESS','MEMO');
--在CREATE TABLE過程中設計字段的排序規則
CREATE TABLE Table_test_6_7
(col1 int PRIMARY KEY,
col2 varchar(10) COLLATE French_CI_AS NOT NULL
)