syscomments表使用多行.为什么?

cor*_*ews 4 sql-server

我正在编写一个不断给我错误的脚本.在跟踪它后,我发现syscomments表将其内容存储在多行中,如果信息长到varchar(8000),我相信.

为什么syscomments表将数据分成多行而不是单个较大的行?性能?

KM.*_*KM. 11

syscomments.text这里记录的是nvarchar(4000):sys.syscomments(Transact-SQL),这是你当天做的最好的.

但是,您可以使用sys.sql_modules此处记录的较新版本:sys.sql_modules(Transact-SQL),其中包含一definitionnvarchar(max).

供搜索使用:

DECLARE @Search nvarchar(500)
SET @Search=N'your text here'
SELECT DISTINCT
    o.name AS Object_Name,o.type_desc --, m.definition
    FROM sys.sql_modules        m 
        INNER JOIN sys.objects  o ON m.object_id=o.object_id
    WHERE m.definition Like '%'+@Search+'%'
    ORDER BY 2,1
Run Code Online (Sandbox Code Playgroud)

如果您是SQL Server 2005之前,则可以使用此处的查询进行搜索:SQL server table population source