Categories: MSDN / DotNet / Java / Scripts / Linux / PHP Ask - La ask - La Answer

Default value?

Hi, I'm creating a dynamic group of values using SELECT and UNION

Example:
(SELECT Description = 'Changed PhoneNumber from ' + @old_PhoneNumber + ' to ' + @PhoneNumber
WHERE @PhoneNumber <> @old_PhoneNumber UNION ALL

SELECT Description = 'Changed FaxNumber from ' + @old_FaxNumber + ' to ' + @FaxNumber
WHERE @FaxNumber <> @old_FaxNumber UNION ALL

SELECT Description = 'Changed EmailAddress from ' + @old_EmailAddress + ' to ' + @EmailAddress
WHERE @EmailAddress <> @old_EmailAddress)

The problem here is that SQL Server thinks "Description" is an int (by default probably) and gives me an error when I try to assign a string to it.

I'm taking that information and using it as a field in a INSERT INTO ... SELECT statement, so I don't think I am able to use a DECLARE statement or if that would even work.

Does anyone know how I can make it so that Description is always a varchar?
[1054 byte] By [Billkamm] at [2007-11-11 7:51:03]
# 1 Re: Default value?
What database are you using?
Phil Weber at 2007-11-11 23:47:34 >
# 2 Re: Default value?
Is @PhoneNumber an int?

try:

(SELECT Description = 'Changed PhoneNumber from ' + cast(@old_PhoneNumber as varchar(15)) + ' to ' + cast(@PhoneNumber as varchar(15))
WHERE @PhoneNumber <> @old_PhoneNumber UNION ALL

SELECT Description = 'Changed FaxNumber from ' + cast(@old_FaxNumber as varchar(15)) + ' to ' + cast(@FaxNumber as varchar(15))
WHERE @FaxNumber <> @old_FaxNumber UNION ALL

SELECT Description = 'Changed EmailAddress from ' + @old_EmailAddress + ' to ' + @EmailAddress
WHERE @EmailAddress <> @old_EmailAddress)
Wiseman82 at 2007-11-11 23:48:35 >