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を使用してTransact-SQLステートメントのバッチの最後に移動し、変数を再度宣言することができます。

 Declare @a int
 Set @a=4
 Select @a
 Go
 Declare @a varchar(10)
 set @a='Sample'
 Select @a

それ以外の場合は、 sql_variantを使用して、指定されていないデータを格納できます。ただし、変換せずにテキスト、ntext、およびタイムスタンプに使用することはできません。

于 2012-08-03T08:22:38.013 に答える