Je migre certaines tables et procédures stockées vers des tables optimisées en mémoire et des procédures stockées compilées en mode natif. Je suis coincé sur la comparaison de chaînes.Comment comparer les paramètres varchar dans une procédure stockée compilée de manière native?
Comparaison, le tri et la manipulation des chaînes de caractères qui ne sont pas utiliser un classement * de _BIN2 ne sont pas pris en charge avec compilés stockés de façon native procédures.
CREATE TABLE [User].[FingerPrints]
(
Id int NOT NULL PRIMARY KEY NONCLUSTERED HASH WITH (BUCKET_COUNT = 10000),
FingerPrint VARCHAR(4000) NOT NULL,
SecretKey VARCHAR(512) NOT NULL,
BranchId int NOT NULL,
SteadySign bit NOT NULL,
CreatedOn datetime NOT NULL,
ModifiedOn datetime NOT NULL
) WITH (MEMORY_OPTIMIZED = ON, DURABILITY = SCHEMA_AND_DATA)
GO
CREATE PROCEDURE [User].[GetFingerPrint]
@Id int,
@SecretKey VARCHAR(512)
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER
AS BEGIN ATOMIC WITH
(
TRANSACTION ISOLATION LEVEL = SNAPSHOT, LANGUAGE = N'us_english'
)
SELECT [Id]
,[FingerPrint]
,[SecretKey]
,[BranchId]
,[SteadySign]
,[CreatedOn]
,[ModifiedOn]
FROM [User].[FingerPrints]
WHERE [Id] = @Id AND [SecretKey] = @SecretKey
END
GO
Pouvez-vous changer SecretKey d'utiliser un classement BIN2? –