我試圖動態創建代碼以將列定義更改爲字段的最大長度。動態T-SQL - 將列定義更改爲字段的最大長度
請注意,數據庫的內容不會改變。
這是我到目前爲止,但我不能單獨執行最大長度查詢來獲得一個數字。我哪裏錯了?
問候。
DECLARE @SQL_STMT VARCHAR(MAX) = ''
SELECT @SQL_STMT = @SQL_STMT
+ '''ALTER TABLE '
+ TABLE_NAME
+ ' ALTER COLUMN '
+ COLUMN_NAME
+ ' '
+ DATA_TYPE
+ '('' SELECT MAX(LEN('
+ COLUMN_NAME
+ ')) FROM '
+ TABLE_NAME
+ ''') ''
'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DATA_TYPE = 'varchar'
PRINT(@SQL_STMT)
你想改變VARCHAR列高達多少長度???這真的不清楚你想要做什麼? – 2014-09-26 15:08:38
直到單個字段的最大長度。例如,從emp – 2014-09-26 15:10:35
選擇max(len(empname))爲什麼在世界上你會這樣做?這可能會削弱使用此數據庫的應用程序。您可以開始截斷數據錯誤,因爲前端已驗證。你不會從中獲益,因爲你只是在改變varchar列。更何況,你可能會得到錯誤,因爲你使用的LEN沒有考慮尾隨空格。 – 2014-09-26 15:15:07