Я имею следующую хранимую процедуру:Неверное исключение литых?
Create PROCEDURE [dbo].[GETVendorsStatsAgainstSearTerm]
@Date DateTime ,
@SearchId bigint
AS
declare @cmd as varchar(2000)
set @cmd = ' select *, ' + cast(SearchId as varchar) + ' as SearhId from tbl'
exec (@cmd)
Я хочу, чтобы рассматривать SearchId
в качестве колонки для запуска выберите запрос против. Я хочу знать правильный тип для столбца SearchId
.
Я не могу преобразовать этот столбец SearchId
в длинный тип данных в C#. Кто-нибудь может мне помочь?
'бросок (SearchId как VARCHAR (50))' - добавить длину на VARCHAR или иначе он будет преобразован в 'VARCHAR (1)'. –
@JW Не точно, в функциях CAST и CONVERT по умолчанию используется VARCHAR (30), а не 1, см. Здесь: http://msdn.microsoft.com/en-us/library/ms176089.aspx – CloudyMarble
@TwoMore: Может или может не назначать желаемую длину, которую вы ожидаете. Это может «усечь» значение. Проверьте эту статью от Aaron http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.aspx – praveen