gpt4 book ai didi

sql-server - 使用变量转换数据类型

转载 作者:行者123 更新时间:2023-12-02 06:39:25 27 4
gpt4 key购买 nike

在 T-SQL 中是否可以将数据类型转换为变量类型?

即尽管这行不通,因为它需要一个字符串文字,但可以理解要点:

select @DataType = Data_Type
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME = 'emp'
and COLUMN_NAME = 'emp_id'

SELECT
cast(emp_id as @DataType)
FROM emp

最佳答案

不,您需要为此使用动态 SQL,例如

DECLARE @sql NVARCHAR(MAX);

SELECT @sql = N'SELECT CAST(emp_id AS ' + Data_Type
+ ') FROM dbo.emp;'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'emp'
AND TABLE_SCHEMA = 'dbo' -- this might be important!
AND COLUMN_NAME = 'emp_id';

PRINT @sql;
-- EXEC sp_executesql @sql;

然而,这对我来说似乎是错误的。为什么不知道列的数据类型?

此外,您将需要一个更复杂的查询,因为您需要考虑精度/比例/最大长度。例如,如果 emp_idvarchar,则所有结果都将被截断为一个字符。

最后,I strongly recommend sys.columns over INFORMATION_SCHEMA .

关于sql-server - 使用变量转换数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11086381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com