我很难区分'uniquelIdentifier'&数据映射脚本中的" varchar"。它的数据不匹配。
我到目前为止尝试过:
--my_field is a UNIQUEIDENTFIER
SELECT distinct my_field, len(my_field), count(my_field)
FROM my_table_
WHERE len(my_field) < 36 OR len(my_field) > 36
group by my_field
SELECT my_field, len(my_field)
FROM my_table_
WHERE my_field LIKE '%[!#%&+,./:;<=>@`{|}~"()*\_^?[]'']%' {ESCAPE ''}
任何帮助都将不胜感激。
假设您的SQL Server版本是2012年或更高版本(如果没有的话,您确实应该升级,因为2012年是Microsoft仍然支持的最早版本) - 您可以使用try_cast
-它将返回null如果演员失败:
样本数据:
DECLARE @T AS TABLE
(
my_field varchar(100)
)
INSERT INTO @T (my_field) VALUES
('608DC3C3-1B2E-47AA-9362-33CD76DA3F6A'), ('A3871EA9-172D-49DD-8874-A850857F01FB'),
('A3871EA9-THIS-IS-WRONG-A850857F01FB'), ('And so is this')
查询:
SELECT my_field
FROM @T
WHERE TRY_CAST(my_Field AS UNIQUEIDENTIFIER) IS NULL
结果:
my_field
A3871EA9-THIS-IS-WRONG-A850857F01FB
And so is this