【发布时间】:2012-08-03 08:14:27
【问题描述】:
是否可以在 SQL Server 中更改变量类型?就像你有的时候
DECLARE @a INT;
SET @a = 3
但是稍后您想使用@a 来存储VARCHAR?有没有办法取消声明它,改变它可以存储的数据类型? T-SQL 允许这样做吗?
【问题讨论】:
标签: sql-server tsql variables declare
是否可以在 SQL Server 中更改变量类型?就像你有的时候
DECLARE @a INT;
SET @a = 3
但是稍后您想使用@a 来存储VARCHAR?有没有办法取消声明它,改变它可以存储的数据类型? T-SQL 允许这样做吗?
【问题讨论】:
标签: sql-server tsql variables declare
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 来结束一批 Transact-SQL 语句,然后再次声明变量
Declare @a int
Set @a=4
Select @a
Go
Declare @a varchar(10)
set @a='Sample'
Select @a
否则您可以使用sql_variant 来存储未指定的数据。但是它不能用于文本、ntext 和没有转换的时间戳
【讨论】: