Je voudrais savoir si je peux sélectionner plus de 1 uniqueidentifier
dans le SQL server
.
Pour sélectionner 1: SELECT NEWID()
cela ramène 1 résultat.
Je voudrais rapporter des 50 résultats
MODIFIER:
Je voudrais que les résultats soient returnnés dans une grid, donc je peux les copyr tous en même time. Ne pas copyr et coller 1 par 1.
Essayez-vous de le faire dans SQL Server Management Studio?
Essayer:
SELECT NEWID() GO 50
et exécutez ce lot
Mettre à jour:
OK – que diriez-vous alors?
SELECT NEWID() FROM master..spt_values WHERE name IS NULL AND number < 50
En supposant que la table master.dbo.sysobjects
contient au less 50 objects système:
SELECT TOP 50 NEWID() FROM master.dbo.sysobjects WHERE xtype = 'S'
Vous n'avez pas besoin d'une command par, puisque le NEWID est random à chaque fois.
--run these queries independently CREATE TABLE #temp1 (ID UniqueIdentifier) GO INSERT INTO #temp1 SELECT NewID() AS ID GO 50 SELECT * FROM #temp1 GO DROP TABLE #temp1 GO
-- Static solution: only 5 GUID values SELECT NEWID() FROM (VALUES(1), (2), (3), (4), (5)) AS Numbers(Number) -- Dynamic solution DECLARE @Num INT; SET @Num=5; SELECT TOP(@Num) NEWID() FROM sys.objects o; -- Another dynamic solution --SET STATISTICS IO ON; --GO DECLARE @Num INT; SET @Num=567; WITH N10(Number) AS ( SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 ), N100(Number) AS ( SELECT (a.Number-1)*10+b.Number FROM N10 AS a CROSS JOIN N10 AS b ), N1000(Number) AS ( SELECT (a.Number-1)*100+b.Number FROM N100 AS a CROSS JOIN N100 AS b ) SELECT TOP(@Num) NEWID() AS [GUID] FROM N1000;