是否可以使用字符串数据类型(将数据类型参数作为字符串的方法)进行 CAST 或 CONVERT,例如:
CAST('11' AS 'int')
但不是
CAST('11' AS int)
是否可以使用字符串数据类型(将数据类型参数作为字符串的方法)进行 CAST 或 CONVERT,例如:
CAST('11' AS 'int')
但不是
CAST('11' AS int)
不。在 T-SQL 中有很多地方需要它,特别是,给它一个名称 - 不是字符串,也不是包含名称的变量。
如果你想使用动态 sql,这应该让你开始:
DECLARE @datatype varchar(20)
DECLARE @sql varchar(4000)
SELECT @datatype = 'int'
SELECT @sql = 'PRINT CAST(''11'' AS '+@datatype+')'
exec (@sql)
根据您确切想要/需要的内容,您应该阅读The Curse and Blessings of Dynamic SQL,尤其是关于sp_executesql
您必须使用动态 sql 来实现:
DECLARE @type VARCHAR(10) = 'int'
DECLARE @value VARCHAR(10) = '11'
DECLARE @sql VARCHAR(MAX)
SET @sql = 'SELECT CAST(' + @value + ' AS ' + @type + ')'
EXEC (@sql)