У меня есть четыре столбца в таблице Surname
, FirstName
, MiddleName
, CurrAddress
. Есть ли способ, чтобы я мог динамически хранить имена столбцов с помощью массива и получать максимальную длину каждого столбца? Скажем, например, из четырех полей мне нужны только максимальные длины Surname
и FirstName
. Мой код ниже отображает только один столбец за транзакцию. Любая помощь приветствуется. Спасибо!Получите максимальную длину столбца SQL Server, используя массив
ALTER PROCEDURE [dbo].[sp_getColumnLength]
@colval nvarchar(50),
@tblval nvarchar(50)
AS
BEGIN
SELECT
character_maximum_length as 'Max Length'
FROM
information_schema.columns
WHERE
column_name = @colval
AND table_name = @tblval
END
GO
Если вы являетесь фильтром с 'column_name = @ colval', то он возвращает один столбец в транзакции. Вы действительно хотите получить поле максимальной длины таблицы? – Arulkumar
Боковое примечание: вы не должны ** использовать префикс 'sp_' для ваших хранимых процедур. Microsoft [зарезервировала этот префикс для собственного использования (см. * Именование сохраненных процедур *)] (http://msdn.microsoft.com/en-us/library/ms190669%28v=sql.105%29.aspx) и вы рискуете столкнуться с именем когда-нибудь в будущем. [Это также плохо для производительности вашей хранимой процедуры] (http://www.sqlperformance.com/2012/10/t-sql-queries/sp_prefix). Лучше просто просто избегать 'sp_' и использовать что-то еще в качестве префикса - или никакого префикса вообще! –