SQL脚本如何在脚本中添加选项卡或新行

时间:2010-06-30 15:05:07

标签: sql stored-procedures newline triggers tabs

我有一个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 '

3 个答案:

答案 0 :(得分:1)

至少对于MS SQL,您可以使用具有正确ASCII值的CHAR()并在字符串中的正确位置连接,也可以在SQL字符串本身中包含换行符,制表符等。该字符串可以跨越多行。例如,这应该有效:

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

'

答案 1 :(得分:0)

这不会改变实际的触发器定义,但是当您需要处理它时,可以使用Instant SQL Formatter之类的工具。

答案 2 :(得分: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 '