Eu tenho 3 tabelas onde quero gerar dados falsos em UsersCategoryLink
.
Como posso inserir na tabela UserCategoryLink
a coluna UserID
com usuários aleatórios da tabela User
e um id aleatório da tabela Categories
. Neste violino SQL você pode ver as tabelas com alguns valores.
UsersCategoryLink
deve ser preenchido com usuários e categorias aleatórios.- Cada usuário deve ter duas categorias.
UserID
eCategoryID
são chaves primárias, então cada valor deve ser único.- Estou usando o SQL Server Express.
Esta é a minha versão da tabela de referência cruzada onde você armazenará os usuários e as categorias das quais eles são membros. Observe que há um índice clusterizado de chave primária em
(UserID, CategoryID)
; isso garante que cada linha seja única:Como você já tem dados nas tabelas
Users
eCategories
, pode usar um CTE com aROW_NUMBER
função de janelamento particionadaUserID
e ordenada por um valor essencialmente aleatório,NEWID()
. Isso nos permite escolher exatamente duas "categorias" para cada "usuário":A seguir está uma amostra de linhas que gerei em meu sistema: