我想知道如果我可以在SQL server
中选择多于1 uniqueidentifier
。如何选择多个唯一标识符?
要选择1:SELECT NEWID()
这会带来1个结果。
我想带回像50个结果
编辑:
我想结果在1个格返回,这样我就可以一次复制所有的人。不要复制和粘贴1 1.
我想知道如果我可以在SQL server
中选择多于1 uniqueidentifier
。如何选择多个唯一标识符?
要选择1:SELECT NEWID()
这会带来1个结果。
我想带回像50个结果
编辑:
我想结果在1个格返回,这样我就可以一次复制所有的人。不要复制和粘贴1 1.
您是否试图在SQL Server Management Studio中执行此操作?
尝试:
SELECT NEWID()
GO 50
,并运行该批处理
更新:
OK - 这个怎么样?然后
SELECT NEWID()
FROM master..spt_values
WHERE name IS NULL
AND number < 50
-- 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;
假设master.dbo.sysobjects
表中有至少50个系统对象:
SELECT TOP 50 NEWID() FROM master.dbo.sysobjects WHERE xtype = 'S'
你并不需要通过一个订单,因为NEWID每一次是随机的。
+1真的很聪明!我喜欢它 - 比我的第二种方法简单得多;-) –
为什么'WHERE'子句? –
@RemusRusanu - 只是想确保里面至少有50条记录,因为我不确定表中有多少个非系统对象,但这不是必须的。 – LittleBobbyTables
--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
基于@marc_s的答案 –
这看起来不错,但是可以选择它们,以便将结果返回到1个网格中。我想将它们全部复制到Excel表格中。我不想复制1 1. – Willem
完美的谢谢。 =) – Willem