使用未知保留关键字的变量

时间:2014-03-27 10:06:18

标签: sql sql-server-2008 tsql

我正在尝试将值动态转换为未知的已保存数据类型,简单示例:

DECLARE @Type nvarchar(max) = 'int'

SELECT CONVERT(@Type, '1234')

如何实现这一目标?

2 个答案:

答案 0 :(得分:5)

唯一的方法是制定一个字符串并执行它

DECLARE @Type nvarchar(max) = 'int'

Exec('SELECT CONVERT(' + @Type + ', ''1234'')')

答案 1 :(得分:1)

CASE声明怎么样?这些都是INT,但它显示了思想......

DECLARE @Type nvarchar(max);
SET @Type = 'int';

SELECT CASE WHEN Upper(@Type)='INT' THEN CONVERT(int, '1234')
            WHEN Upper(@Type)='INT' THEN CONVERT(int, '1234')
            ELSE CONVERT(int, '1234') END;