是否可以在SQL Server中更改变量类型?像你有的时候
DECLARE @a INT;
SET @a = 3
但稍后您想使用@a
来存储VARCHAR
?有没有办法取消它,改变它可以存储的数据类型? T-SQL是否允许这样做?
答案 0 :(得分:4)
declare @s sql_variant
select @s=3
select @s='hello'
答案 1 :(得分:4)
一旦声明无法更改类型,变量名称在sql批处理中必须是唯一的。
Declare @a int
Set @a=4
Select @a
Declare @a varchar(10)
set @a='Sample'
Select @a
您将收到错误
The variable name '@a' has already been declared. Variable names must be
unique within a query batch or stored procedure.
但是,您可以使用go结束一批Transact-SQL语句,然后再次声明变量
Declare @a int
Set @a=4
Select @a
Go
Declare @a varchar(10)
set @a='Sample'
Select @a
否则,您可以使用sql_variant来存储未指定的数据。但是,如果没有转换,它不能用于text,ntext和timestamp