2009-12-29 34 views
0

我正在構建一個腳本來獲取文檔中的所有觸發器,但我想包含換行符。我將它複製並粘貼到excel中,以便快速生成一些強制性文檔,但文本列中的所有內容最終都會生成爲不帶換行符。如何在SQL Server中包含syscomments的換行符?

我目前使用的線,產生截斷的結果文件是:

SELECT OBJECT_DEFINITION(sys.objects.object_id) 
FROM sys.objects 
WHERE type = 'TR' 

回答

2
Tools->Options->Query Results->Results to file 

沒有複製粘貼需要:)

+0

我得到截斷使用上面的方法與我的查詢。 – 2009-12-29 18:13:09

+1

在jvenema提到的對話框中,將「最大字符數」設置爲像1024這樣的較大值。 – 2009-12-29 18:22:31

1

其一,不要使用syscomments中SQL Server 2005+。使用sys.sql_modules或OBJECT_DEFINITION。 nvarchar(4000)中syscomments中的數據類型,表示截斷。

如果你在:

  • 「結果網格」,你永遠不會有換行符
  • 「結果到文本」,你就必須截斷(在tools..options某處)

那麼,爲什麼不使用這些技術之一:

  • bcp或使用SQLCMD sys.objects中上OBJECT_DEFINITION生成一個簡單的文本文件?
  • 在Excel中使用SQL查詢?
  • SMO?
  • 「文件結果」(如jvenema提到的)?
+0

沒有截斷,syscomments只是添加其他行來覆蓋所有這些。 – 2009-12-29 17:53:59

+0

這使它可以使用?這是SQL 2005以來的一個壞習慣。無論如何,我已經提出了關於如何讓你的新行迴歸的想法... – gbn 2009-12-29 17:56:41

+1

我正在用OBJECT_DEFINITION和sys_modules截斷。 – 2009-12-29 18:03:01

相關問題