Voici donc la configuration. J'ai deux tables:Curseur SQL/Population Question
CREATE TABLE dbo.TmpFeesToRules1(Name varchar, LookupId int)
CREATE TABLE dbo.TempFeesToRules2(FeeId int, Name varchar)
J'ai une troisième table appelée « frais » dans la base de données qui est déjà créé. Je veux remplir le champ 'Name' de dbo.TmpFeesToRules1 avec le 'DISTINCT' de 'Fee'. Est-ce que je ferais ça comme ça?
INSERT INTO dbo.TmpFeesToRules1(Name, LookupId)
VALUES (SELECT DISTINCT Name FROM Fee, 0)
Puis-je utiliser un curseur sur une boucle par dbo.TmpFeesToRules1 et insérer chacune de ces lignes dans une autre table appelée « Recherche », de sorte que ces noms seraient alors LookupId de qui leur est attribuée:
DECLARE db_cursor CURSOR FOR
SELECT Name
FROM dbo.TmpFeesToRules1
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @Name
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO dbo.Lookup (LookupType, LookupDesc)
VALUES ('FEE', @Name)
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
Ensuite, je veux revenir à dbo.TmpFeesToRules1 et UPDATE et insérer ces LookupId pour chacun des noms. Comment puis-je faire cela?
Aussi, je ne pense pas que mon SQL est entièrement correct pour tout le reste non plus? Pouvez-vous vérifier cela?
L'INSERT que vous avez fourni ne fonctionnera pas - erreur de syntaxe, voir la réponse de Florian pour ce qui sera le cas. –