OVH Cloud OVH Cloud

Utilisation Writetext d'une colonne de type nText

2 réponses
Avatar
Marcel R.
Je désire en T-SQL mettre à jour une colonne de type ntext avec le contenu de
cette même colonne d'une autre enregistrement de la même table. Je sais que
la commande Update ne fonctionne pas. J'ai tenté d'utiliser la commande
Writetext mais sans succès.

Je ne suis pas capable de récupérer le contenu du texte dans une variable
pour le transmettre dans la commande Writetext par la suite.

note: discussion est de type ntext

*** le code suivant ne fonctionne pas, mais comment le convertir en
Writetext ***

Update test
set discussion = (select test.discussion from test where test.test_id = 2)
where test.test_id = 1

Merci pour l'info

2 réponses

Avatar
Med Bouchenafa
>... Je sais que la commande Update ne fonctionne pas. ...


Pourquoi?
Je suis curieux de savoir d'où tu sais cela ?
Je trouve nulle part dit qu'il faut absolument passer par WRITETEXT ou
UPDATETEXT

Voici un exemple

CREATE TABLE tblTest
(
a int identity,
b text
)
GO
INSERT INTO tblTest(b) VALUES (REPLICATE('1', 8000) )
INSERT INTO tblTest(b) VALUES (REPLICATE('2', 8000) )
INSERT INTO tblTest(b) VALUES (REPLICATE('3', 8000) )
INSERT INTO tblTest(b) VALUES (REPLICATE('4', 8000) )
GO
SELECT * from tblTest
GO
UPDATE tblTest
SET b = T2.B
FROM tblTest , tblTest T2
WHERE tblTest.a = 1 AND T2.a=2
GO
SELECT * from tblTest

--
Bien cordialement
Med Bouchenafa


"Marcel R." wrote in message
news:
Je désire en T-SQL mettre à jour une colonne de type ntext avec le contenu
de
cette même colonne d'une autre enregistrement de la même table. Je sais
que
la commande Update ne fonctionne pas. J'ai tenté d'utiliser la commande
Writetext mais sans succès.

Je ne suis pas capable de récupérer le contenu du texte dans une variable
pour le transmettre dans la commande Writetext par la suite.

note: discussion est de type ntext

*** le code suivant ne fonctionne pas, mais comment le convertir en
Writetext ***

Update test
set discussion = (select test.discussion from test where test.test_id = 2)
where test.test_id = 1

Merci pour l'info







Avatar
Marcel R.
Excuse-moi Med, j'avais une erreur dans mon Sql et j'avais trouvé un article
sur MSDN qui mentionnait l'utilisation de WRITETEXT au lieu du UPDATE.

<< Updating text, ntext, and image Columns
Modifying a text, ntext, or image column with UPDATE initializes the column,
assigns a valid text pointer to it, and allocates at least one data page,
unless the column is being updated with NULL.

To replace or modify large blocks of text, ntext, or image data, use
WRITETEXT or UPDATETEXT instead of the UPDATE statement.






merci pour l'information.

"Med Bouchenafa" a écrit :

>... Je sais que la commande Update ne fonctionne pas. ...
Pourquoi?
Je suis curieux de savoir d'où tu sais cela ?
Je trouve nulle part dit qu'il faut absolument passer par WRITETEXT ou
UPDATETEXT

Voici un exemple

CREATE TABLE tblTest
(
a int identity,
b text
)
GO
INSERT INTO tblTest(b) VALUES (REPLICATE('1', 8000) )
INSERT INTO tblTest(b) VALUES (REPLICATE('2', 8000) )
INSERT INTO tblTest(b) VALUES (REPLICATE('3', 8000) )
INSERT INTO tblTest(b) VALUES (REPLICATE('4', 8000) )
GO
SELECT * from tblTest
GO
UPDATE tblTest
SET b = T2.B
FROM tblTest , tblTest T2
WHERE tblTest.a = 1 AND T2.a=2
GO
SELECT * from tblTest

--
Bien cordialement
Med Bouchenafa


"Marcel R." wrote in message
news:
> Je désire en T-SQL mettre à jour une colonne de type ntext avec le contenu
> de
> cette même colonne d'une autre enregistrement de la même table. Je sais
> que
> la commande Update ne fonctionne pas. J'ai tenté d'utiliser la commande
> Writetext mais sans succès.
>
> Je ne suis pas capable de récupérer le contenu du texte dans une variable
> pour le transmettre dans la commande Writetext par la suite.
>
> note: discussion est de type ntext
>
> *** le code suivant ne fonctionne pas, mais comment le convertir en
> Writetext ***
>
> Update test
> set discussion = (select test.discussion from test where test.test_id = 2)
> where test.test_id = 1
>
> Merci pour l'info
>
>
>
>
>