CREATE TABLE Product(
ProductID int identity(1,1) PRIMARY KEY, -- Clustered Unique Index created
ProductName nvarchar(64) not null UNIQUE, -- Non-Clustered Unique Index created
ModifiedDate date default(getdate()));
CREATE TABLE ProductPhoto (
ProductPhotoID int identity(1,1) PRIMARY KEY, -- Clustered Unique Index created
ProductID int REFERENCES Product(ProductID),
LargePhoto varbinary(max),
ModifiedDate date default(getdate()));
ProductID int identity(1,1) PRIMARY KEY, -- Clustered Unique Index created
ProductName nvarchar(64) not null UNIQUE, -- Non-Clustered Unique Index created
ModifiedDate date default(getdate()));
CREATE TABLE ProductPhoto (
ProductPhotoID int identity(1,1) PRIMARY KEY, -- Clustered Unique Index created
ProductID int REFERENCES Product(ProductID),
LargePhoto varbinary(max),
ModifiedDate date default(getdate()));
USE tempdb;
SELECT *
INTO SODetail
FROM AdventureWorks2008.Sales.SalesOrderDetail
GO
-- (121317 row(s) affected)
SELECT TOP 100 *
FROM SODetail
ORDER BY SalesOrderID,
SalesOrderDetailID
;
WITH cteDistinctSO
AS (SELECT DISTINCT SalesOrderID
FROM SODetail)
SELECT [SequentialID] = Identity(INT,1,1),
SalesOrderID
INTO #SequentialMapping
FROM cteDistinctSO
ORDER BY SalesOrderID ASC
GO
--(31465 row(s) affected)
SELECT TOP 10 *
FROM #SequentialMapping
ORDER BY SalesOrderID
GO
-- SQL Server sequential update
UPDATE s
SET s.SalesOrderID = m.[SequentialID]
FROM SODetail s
INNER JOIN #SequentialMapping m
ON s.SalesOrderID = m.SalesOrderID
GO
SELECT TOP 100 *
FROM SODetail
ORDER BY SalesOrderID,
SalesOrderDetailID
DROP TABLE tempdb.dbo.SODetail
DROP TABLE #SequentialMapping
GO
No comments:
Post a Comment