2016-08-16 63 views
-1

我有一塊sql腳本,我將其輸出設置爲文本運行。 它返回的列設置爲varchar(255),所以在文本輸出中該列的寬度爲255個字符。T-SQL到文本:根據需要設置列寬

我知道我可以使用

Cast(ColumnName As VarChar(75))) As ColumnName 

來限制它下降到75個字符的寬度,但我想實現的是,它會自動設置寬度返回最寬的結果。有誰知道這是否可能?

+0

您是指設置UI元素的寬度?你可以將它設置爲'Max(Len(ColumnName))'。 – Serg

+0

「文本輸出」是什麼意思? 'VARCHAR(X)'是用於長度不超過X個字符的文本,所以你得到的值將正好是內容的長度,與'CHAR(X)'相反,其中每個值將*精確* X字符長,如果更短,填充空格。 –

回答

1

使用動態查詢來實現結果。

查看下面的一個示例腳本。

CREATE TABLE #temp 
(Column1 VARCHAR(50)) 

INSERT INTO #temp (Column1) VALUES ('1111-123'),('15454454aa-4545') 

DECLARE @Delimit INT 
DECLARE @queryString VARCHAR(MAX) 

SELECT @Delimit=MAX(LEN(Column1)) FROM #temp --Getting the Length of largest column data 

SET @queryString='SELECT CAST(Column1 AS VARCHAR('+CONVERT(VARCHAR(50),@Delimit)+'))Column1 
        FROM #temp' 
EXEC(@queryString) 
+1

完美工作,只使用過一次動態SQL,但理解您的解決方案,謝謝 – Jeffrey