是否可以在 SQL Server 中更改变量类型?就像当你有
DECLARE @a INT;
SET @a = 3
但是以后你想用来@a
存放VARCHAR
?有没有办法取消声明它,改变它可以存储的数据类型?T-SQL 允许这样做吗?
是否可以在 SQL Server 中更改变量类型?就像当你有
DECLARE @a INT;
SET @a = 3
但是以后你想用来@a
存放VARCHAR
?有没有办法取消声明它,改变它可以存储的数据类型?T-SQL 允许这样做吗?
declare @s sql_variant
select @s=3
select @s='hello'
变量名称在 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 to end of a batch Transact-SQL statements 然后再次声明变量
Declare @a int
Set @a=4
Select @a
Go
Declare @a varchar(10)
set @a='Sample'
Select @a
否则你可以使用sql_variant来存储未指定的数据。但是它不能用于 text、ntext 和 timestamp 没有转换