{"id":15002631,"url":"https://github.com/samorysundjata/tsql","last_synced_at":"2026-02-17T02:02:03.078Z","repository":{"id":255530342,"uuid":"852342068","full_name":"samorysundjata/tsql","owner":"samorysundjata","description":"Exemplo do post para tabela associativa em T-SQL","archived":false,"fork":false,"pushed_at":"2024-10-18T15:11:04.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-19T02:59:08.210Z","etag":null,"topics":["sql","sqlserver","tsql"],"latest_commit_sha":null,"homepage":"https://samory.sistemasresponsivos.com.br/2024/07/28/t-sql-laco-para-popular-tabela-associativa/","language":"TSQL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samorysundjata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-04T16:34:31.000Z","updated_at":"2024-10-18T15:11:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"02652cd8-7c7e-47fc-9121-237fe13c1cc2","html_url":"https://github.com/samorysundjata/tsql","commit_stats":{"total_commits":8,"total_committers":1,"mean_commits":8.0,"dds":0.0,"last_synced_commit":"d8e92d35cede142e18ec49e1fe1cc0c20f8369ff"},"previous_names":["samorysundjata/tsql"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/samorysundjata/tsql","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samorysundjata%2Ftsql","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samorysundjata%2Ftsql/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samorysundjata%2Ftsql/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samorysundjata%2Ftsql/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samorysundjata","download_url":"https://codeload.github.com/samorysundjata/tsql/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samorysundjata%2Ftsql/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29530142,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T00:57:22.232Z","status":"online","status_checked_at":"2026-02-17T02:00:08.105Z","response_time":100,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["sql","sqlserver","tsql"],"created_at":"2024-09-24T18:51:34.510Z","updated_at":"2026-02-17T02:02:03.059Z","avatar_url":"https://github.com/samorysundjata.png","language":"TSQL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# T-SQL: Laço para Popular Tabela Associativa\n\n[![T-SQL](https://img.shields.io/badge/SQL-T--SQL-blue)](https://docs.microsoft.com/en-us/sql/t-sql/language-reference)\n![SQL Server 2019](https://img.shields.io/badge/SQL%20Server-2019-CC2927?style=flat\u0026logo=microsoft-sql-server\u0026logoColor=white)\n![Loops](https://img.shields.io/badge/Loops-CC2927?style=flat\u0026logo=microsoft-sql-server\u0026logoColor=white)\n\nPublicado em julho 28, 2024 por Samory Sundjata\n\nUma tabela associativa implementa relacionamentos muitos-para-muitos entre tabelas/classes, armazenando pares de chaves estrangeiras. Veja como usar um laço para popular tabela associativa em T-SQL.\n\n## O que é T-SQL?\n\nTransact-SQL é uma extensão proprietária da Microsoft para SQL, que adiciona recursos como programação procedural, variáveis locais e manipulação de exceções, sendo usada para gerenciar e consultar dados em bancos de dados SQL Server.\n\n## Exemplo de Tabelas\n\n### Tabelas Principais:\n\n**Estudantes**\n\n- EstudanteID (Chave Primária)\n- NomeEstudante\n\n**Cursos**\n\n- CursoID (Chave Primária)\n- NomeCurso\n\n### Tabela Associativa:\n\n**EstudantesCursos**\n\n- EstudanteID (Chave Estrangeira, referencia Estudantes.EstudanteID)\n- CursoID (Chave Estrangeira, referencia Cursos.CursoID)\n\n### Exemplo de Dados:\n\n**Estudantes**\n| EstudanteID | NomeEstudante |\n|-------------|---------------|\n| 1 | Alice |\n| 2 | Beto |\n\n**Cursos**\n| CursoID | NomeCurso |\n|---------|-------------|\n| 101 | Matemática |\n| 102 | Literatura |\n\n**EstudantesCursos**\n| EstudanteID | CursoID |\n|-------------|---------|\n| 1 | 101 |\n| 1 | 102 |\n| 2 | 101 |\n\n## Laço para Popular a Tabela Associativa\n\n```sql\nDECLARE @counter INT = (SELECT TOP 1 ID_TABELAMAIOR FROM TABELAMAIOR);\nDECLARE @counterMAJ INT = (SELECT COUNT(*) FROM [TABELAMAIOR]);\nDECLARE @counterMIN INT = (SELECT COUNT(*) FROM [TABELAMENOR]);\nDECLARE @RandomNumber INT = (SELECT ABS(CHECKSUM(NEWID())) % @counterMIN + 1);\n\nWHILE @counter \u003c= @counterMAJ\nBEGIN\n    INSERT INTO [TABELAMAIOR_TABELAMENOR] ([ID_TABELAMAIOR], [ID_TABELAMENOR])\n    VALUES (@counter, @RandomNumber);\n\n    SET @counter = @counter + 1;\n    SET @RandomNumber = (SELECT ABS(CHECKSUM(NEWID())) % @counterMIN + 1);\nEND;\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamorysundjata%2Ftsql","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamorysundjata%2Ftsql","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamorysundjata%2Ftsql/lists"}