Salut,

Je suis toujours dans les réparations du serveur de mon CMS Maison.

Etant donné que j'ai profité de la réparation pour passer à SQL Server 2005, j'aimerais me dédoiner des limites de la version 2000.

D'après ce que j'ai lu, la version 2005 permet l'utilisation d'énormes champs nvarchar.

Chouette me suis-je dit, je vais pouvoir stockers l'ensemble du contenu de chaque page dans un seul enregistrement d'une seule table...

J'ai donc créé la table suivante (j'enleve ce qui n'a rien à voir avec la question)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
CREATE TABLE [dbo].[MT_Contents](
	[MT_Contents] [int] IDENTITY(1,1) NOT NULL,
	[txtHTMLContent] [nvarchar](max) NOT NULL,
 CONSTRAINT [PK_MT_Contents] PRIMARY KEY CLUSTERED 
(
	[MT_Contents] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
et pis, j'ai fait la petite proc qui devait me permettre d'importer mon contenu d'avant dans la nouvelle table (code épuré aussi).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
ALTER PROCEDURE dbo.__ImportContent
	(
		@HTMLContent nvarchar(max),
	)
AS
	INSERT INTO MT_Contents (
		txtHTMLContent
	) VALUES (
		@HTMLContent	)
	RETURN @@IDENTITY
Mais lorsque j'execute ça j'ai une erreur :

Les données de chaîne ou binaires seront tronquées.
L'instruction a été arrêtée.


Je mesure la chaine...

10807 caractères... :'(

Alors quoi, c'est bien de pouvoir mettre 2Go dans un champ mais peut-on le remplir avec une proc normale ?

D'avance merci

Laurent