1

是否可以在 SQL Server 中更改变量类型?就像当你有

DECLARE @a INT;
SET @a = 3

但是以后你想用来@a存放VARCHAR?有没有办法取消声明它,改变它可以存储的数据类型?T-SQL 允许这样做吗?

4

2 回答 2

4
declare @s sql_variant
select @s=3
select @s='hello'
于 2012-08-03T08:19:22.410 回答
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 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 没有转换

于 2012-08-03T08:22:38.013 回答