找到名称为 GUID 的 table
Find the table with the GUID as a name
我有 tables 以 GUID
作为他们生成的名称。
例如:
我有 table 个名字是:
FD962987-AA3E-441C-B608-2392B68A5287
508482AF-EFCF-41C1-B083-D51BF37C3590
数据库中还有一些其他 table。
我只想找到名称为 GUID
的 table。
我的尝试:
SELECT name
FROM sys.tables
WHERE LEN(tables.name) = 36
上面的查询工作正常,但是当我有其他 tables(不是 GUID 名称)时,显示的 table 名称具有相同的长度。
试试这样的:
SELECT
name
FROM
sys.tables
WHERE
LEN(tables.name) = 36
AND (tables.name LIKE '%-%-%-%-%') --OR tables.name LIKE '%-____-____-____-%')
如果您的 MS SQL 服务器版本支持它 (2012+),您可以为此使用 TRY_CONVERT。
转换失败时为 TRY_CONVERT returns NULL。
SELECT t.name
FROM sys.tables t
WHERE LEN(t.name) = 36
AND TRY_CONVERT(UNIQUEIDENTIFIER, t.name) IS NOT NULL;
或者您可以使用带有字符范围的 LIKE。但这是一种相当反 golfcode 的方法。
由于 UNIQUEIDENTIFIER 具有非常特殊的格式,仅在 4 个破折号之间使用字符 ABCDEF0123456789
。
SELECT t.name
FROM sys.tables t
WHERE t.name like '[A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9]-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]-[A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9]'
我有 tables 以 GUID
作为他们生成的名称。
例如:
我有 table 个名字是:
FD962987-AA3E-441C-B608-2392B68A5287
508482AF-EFCF-41C1-B083-D51BF37C3590
数据库中还有一些其他 table。
我只想找到名称为 GUID
的 table。
我的尝试:
SELECT name
FROM sys.tables
WHERE LEN(tables.name) = 36
上面的查询工作正常,但是当我有其他 tables(不是 GUID 名称)时,显示的 table 名称具有相同的长度。
试试这样的:
SELECT
name
FROM
sys.tables
WHERE
LEN(tables.name) = 36
AND (tables.name LIKE '%-%-%-%-%') --OR tables.name LIKE '%-____-____-____-%')
如果您的 MS SQL 服务器版本支持它 (2012+),您可以为此使用 TRY_CONVERT。
转换失败时为 TRY_CONVERT returns NULL。
SELECT t.name
FROM sys.tables t
WHERE LEN(t.name) = 36
AND TRY_CONVERT(UNIQUEIDENTIFIER, t.name) IS NOT NULL;
或者您可以使用带有字符范围的 LIKE。但这是一种相当反 golfcode 的方法。
由于 UNIQUEIDENTIFIER 具有非常特殊的格式,仅在 4 个破折号之间使用字符 ABCDEF0123456789
。
SELECT t.name
FROM sys.tables t
WHERE t.name like '[A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9]-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]-[A-F0-9][A-F0-9][A-F0-9][A-F0-9]-[A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9][A-F0-9]'