sys.syscomments , like all directory metadata, is a view, not a table. You can see the definition of the actual view:
sp_helptext 'sys.syscomments'
and you will see that the actual text of the object definition is obtained using CROSS APPLY in the internal rowset (i.e. the relational operator). Thus, there are no several rows in the base tables, the definition simply breaks down into several lines on the fly, so that one large text module can be represented as several nvarchar (4000) chuncks.
On the other hand, if you check the definition of another sys.sql_modules view :
sp_helptext 'sys.sql_modules'
You will see that the text of the module is obtained through the scalar function OBJECT_DEFINITION .
As a rule, there can never be any performance benefit from breaking a single field into multiple lines.
source share