2010-06-30 36 views
1

我有一個SQL腳本,它獲取表名併爲這些表創建觸發器。當我在創建它之後打開觸發器時,所有的代碼都在一行上。我將如何去在腳本中添加製表符和換行符以使觸發器更具可讀性。SQL腳本如何在腳本中添加製表符或新行

示例代碼:

SET @SQL = 'ALTER TRIGGER [dbo].[TRG_' + SUBSTRING(@TABLE_NAME,5, LEN(@TABLE_NAME)) + '_$AUD] ' 
     SET @SQL = @SQL + 'ON [dbo].[' + @TABLE_NAME + '] ' 
     SET @SQL = @SQL + 'FOR UPDATE, DELETE ' 
     SET @SQL = @SQL + 'AS ' 
     SET @SQL = @SQL + 'DECLARE ' 
     SET @SQL = @SQL + '@BIT INT, ' 
     SET @SQL = @SQL + '@FIELD INT, ' 
     SET @SQL = @SQL + '@CHAR INT ' 

回答

1

對於MS SQL,至少可以使用帶有正確ASCII值的CHAR()並在字符串的正確位置連接,或者可以在SQL字符串本身中包含換行符,製表符等。該字符串可以跨越多行。例如,這應該工作:

SET @SQL = 'ALTER TRIGGER [dbo].[TRG_' + SUBSTRING(@TABLE_NAME,5, LEN(@TABLE_NAME)) + '_$AUD] 
ON [dbo].[' + @TABLE_NAME + '] 
... 

' 
+0

這工作很好。問題回答了 – mattgcon 2010-06-30 15:12:12

0

這不會改變實際觸發定義,但你可以使用一個工具,如Instant SQL Formatter,當你需要進行這項工作。

+0

我要去保持這種聯繫得心應手其他情況下,我有太多的觸發器來改變,因爲這一刻的。但是,謝謝你,它確實工作,只是試過它 – mattgcon 2010-06-30 15:09:06

0

使用本

SET @SQL = 'ALTER TRIGGER [dbo].[TRG_' + SUBSTRING(@TABLE_NAME,5, LEN(@TABLE_NAME)) + '_$AUD] 
     ON [dbo].[' + @TABLE_NAME + '] 
     FOR UPDATE, DELETE 
     AS 
     DECLARE 
     @BIT INT, 
     @FIELD INT, 
     @CHAR INT ' 
相關問題