我想在引用变量来设置data_type时调用SQL CONVERT函数。
例如:
CONVERT(nvarchar(10), column1, 120)
但不是指定nvarchar(10),我想引用一个变量:
CONVERT(@myDataType, column1, 120)
现在@myDataType可能是nvarchar(10),nvarchar(7),Int,但我无法弄清楚使它起作用的语法。
或者,我想将大小设置为参数,这样:
CONVERT(nvarchar(@mySize), column1, 120)
大小可以是整数。这似乎也不起作用。
这些可能吗?
不,您不能这样做。参数仅表示文字(即“常量”)值。它们不代表语言的标识符,关键字,运算符和其他组件。
在存储过程中,您可以使用动态SQL解决此问题。
但是,SQL Server在函数调用中不支持(以任何容易的合理方式)动态SQL。
我建议您先转换为nvarchar(max)
,然后使用left()
:
LEFT(CONVERT(nvarchar(max), column1, 120), @mysize)
实际上,nvarchar(max)
有点过分约会了。诸如32
或255
的值应足够。