我正在使用一条CASE
语句来帮助填充临时表,但由于某种原因,我收到了操作数类型冲突错误:
CREATE TABLE #users
(
id INT IDENTITY (1, 1),
userid UNIQUEIDENTIFIER,
username VARCHAR(50),
sysrole VARCHAR(50)
)
--Insert all loadtest users into temp table
INSERT INTO #users
(userid,
username,
sysrole)
SELECT id,
username,
sysrole =
CASE
WHEN id between 0 and 100 THEN '63F7971B-45FF-4E3C-86E7-9D0507AF60C0'
WHEN id between 101 and 200 THEN '26478736-7937-4E52-891B-E80A8D609693'
WHEN id between 201 and 300 THEN 'CEF5F44F-0961-414C-8578-22BEB0C4B9FF'
WHEN id between 301 and 400 THEN '63F7971B-45FF-4E3C-86E7-9D0507AF60C0'
WHEN id between 401 and 500 THEN '7FD13C9E-731B-43AE-95F0-E9AEDC65759C'
END
FROM user
WHERE username LIKE '%Test%'
有 500 个用户,所以 CASE 可以处理所有这些可能性。然而,操作数类型冲突正在读取(在 INSERT INTO 开始的行上)uniqueidentifier is incompatible with tinyint
。
该IDENTITY
列在 ? 期间没有自动填充INSERT
?
编辑:我刚刚意识到了解user
表格的外观会很有用。它有大约十几列,但我想从中提取的是:
id
username
这是一个字符串的主键
(用户的唯一标识符)
sysrole
CASE
如您所见,正在被定义。