Я пытался реализовать хеш-раздел во временной таблице.
Ниже приведены запросы, которые я выполнил:
-- Adding the file group
ALTER DATABASE myDB
ADD FILEGROUP DistData;
GO
ALTER DATABASE myDB
ADD FILE
(
NAME = DistDatafile,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\DistDatafile.ndf',
SIZE = 5 MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 5MB
)
TO FILEGROUP DistData;
GO
CREATE PARTITION FUNCTION [Hashing] (TINYINT) AS RANGE LEFT FOR VALUES (0, 1, 2, 3, 4, 5, 6, 7)
CREATE PARTITION SCHEME [ps_Hashing] AS PARTITION [Hashing] ALL TO ([DistData])
-- Creating Temp Table #myTempTable and Copying the contents of myTable to it.
select *
into #myTempTable
from myTable
ALTER TABLE #myTempTable
ADD [HashValue] AS (CONVERT([tinyint], abs(binary_checksum(country)%(12)),(0)))
PERSISTED NOT NULL
-- ERROR WHILE DOING THIS
CREATE UNIQUE CLUSTERED INDEX [IX_Distribution]
ON #myTempTable
([REQ_SEQ] ASC, [HashValue])
ON [ps_Hashing](HashValue)
Я получаю сообщение об ошибке при выполнении вышеуказанного запроса:
Сообщение 1921 г., уровень 16, состояние 1, строка 29 Указана неверная схема разбиения 'ps_Hashing'.
Однако, если я запускаю SELECT * FROM sys.partition_schemes WHERE name='ps_Hashing'
Я вижу, что схема существует.