这个句子有点难度,涉及到3个函数SUBSTRING、charindex、LOWER declare @data_path nvarchar(256); --这句是定义了一个变量@data_path set @data_path =( --给变量赋值 select SUBSTRING(physical_name,1,charindex(N'master.mdf', --SUBSTRING是从physical_name字段中的第一个字符找起 --charindex是从后面那个字段中找master.mdf LOWER(physical_name)) - 1) --LOWER函数是把数据全变为小写 from master.sys.master_files ------返回的是physical_name字段中,符合WHERE条件的, where database_id = 1 and file_id=1); 从第一个字符起,到master.mdf结束的字符,应该是这样