私のテーブルに4列ありますSurname
、FirstName
、MiddleName
、CurrAddress
です。配列を使用して列名を動的に格納し、各列の最大長を取得する方法はありますか?たとえば、4つのフィールドのうち、Surname
とFirstName
の最大長のみが必要です。以下の私のコードはトランザクションごとに1つの列しか表示しません。どんな助けでも大歓迎です。ありがとうございました!配列を使用して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'でフィルタリングすると、トランザクションごとに1つのカラムが返されます。あなたは本当にテーブルの最大長フィールドを取得したいですか? – Arulkumar
サイドノート:ストアドプロシージャのプレフィックス 'sp_'を**使用しないでください**。マイクロソフトは、[*ストアドプロシージャの名前付け*を参照してください](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_'を避け、他の何かを接頭辞として使うのが最善です。 –