在下面的代码中,我不明白 SQL_Variant 是从哪里来的——它抱怨的列是LOGINPROPERTY([name], 'PASSWORDLASTSETTIME') AS LastChangeTime
根据 MSFT 文档,这是一个DATETIME
列。
SQL_Variant
数据类型从何而来?
DROP TABLE #PasswordChange;
CREATE TABLE #PasswordChange (name VARCHAR(50),
lastPWChangeTS DATETIME,
PWhash VARBINARY(26));
INSERT INTO #PasswordChange (name,
lastPWChangeTS,
PWhash)
SELECT [name],
LOGINPROPERTY([name], 'PASSWORDLASTSETTIME') AS LastChangeTime,
LOGINPROPERTY([name], 'PASSWORDHASH') AS PWhash
FROM sys.syslogins
WHERE loginproperty([name], 'PASSWORDLASTSETTIME') > DATEADD(HOUR, -24,
GETDATE());
Msg 257, Level 16, State 3, Line 6
Implicit conversion from data type sql_variant to datetime is not
allowed. Use the CONVERT function to run this query.
返回值取决于输入值,但结果集返回 sql_variant 以容纳所有可能的返回类型。
您必须对代码进行一些调整。