Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQL Server中从选择查询合并多个结果_Sql Server - Fatal编程技术网

Sql server 在SQL Server中从选择查询合并多个结果

Sql server 在SQL Server中从选择查询合并多个结果,sql-server,Sql Server,我有这个SQL块代码 use TestDatabase declare @keyword nvarchar(1000) = ''; declare @sqlKeyword nvarchar(1000) = ''; set @sqlKeyword = 'select * into #tmphosovanban from TblHoSoVB select * from( select * from (

我有这个SQL块代码

use TestDatabase

declare @keyword nvarchar(1000) = '';
declare @sqlKeyword nvarchar(1000) = '';

set @sqlKeyword =
    'select * into #tmphosovanban from TblHoSoVB
            select *  from(
                select * from (
                --tim tu khoa theo district
                        ( select * from  #tmphosovanban
                            where  DCHCHuyenID in (select DistrictID from MstDistrict where DistrictName like N''%'+@keyword+'%'' )
                            or DatHCHuyenID in (select DistrictID from MstDistrict where DistrictName like N''%'+@keyword+'%'' )
                             )
                        union

                --tim tu khoa theo town
                        (select * from  #tmphosovanban
                            where DCHCXaID in (select TownID from MstTown where TownName like N''%'+@keyword+'%'')
                            or DatHCXaID in (select TownID from MstTown where TownName like N''%'+@keyword+'%'')
                            )
                        union
                --tim tu khoa theo nguon goc dat
                        (select * from  #tmphosovanban
                            where NGSuDungDatID in (select MasterID from MstCommonMaster where MasterName like N''%'+@keyword+'%'')
                            or MDSuDungDatID in (select MasterID from MstCommonMaster where MasterName like N''%'+@keyword+'%'')
                            or LoaiTaiSanID in (select MasterID from MstCommonMaster where MasterName like N''%'+@keyword+'%'')
                            )
                        union 
                        (select * from  #tmphosovanban
                            where ViTriLuuID in (select GiaID from MstViTriGia where TenGia like N''%'+@keyword+'%'')
                        )

                ) as temp
        ) as temp2 
        drop table #tmphosovanban'
exec(@sqlKeyword)
我犯了一个错误

味精102,第15级,状态1,第21行
“')附近的语法不正确

当我在SQL Server上运行此块时。我不知道为什么是错的。当我删除下面的一个块时,它会运行,所以我认为我的语法是正确的,因为另一个原因,它不会运行。我怎样才能解决这个问题

        --tim tu khoa theo district
                ( select * from  #tmphosovanban
                    where  DCHCHuyenID in (select DistrictID from MstDistrict where DistrictName like N''%'+@keyword+'%'' )
                    or DatHCHuyenID in (select DistrictID from MstDistrict where DistrictName like N''%'+@keyword+'%'' )
                     )
                union


        --tim tu khoa theo town
                (select * from  #tmphosovanban
                    where DCHCXaID in (select TownID from MstTown where TownName like N''%'+@keyword+'%'')
                    or DatHCXaID in (select TownID from MstTown where TownName like N''%'+@keyword+'%'')
                    )
                union

        --tim tu khoa theo nguon goc dat
                (select * from  #tmphosovanban
                    where NGSuDungDatID in (select MasterID from MstCommonMaster where MasterName like N''%'+@keyword+'%'')
                    or MDSuDungDatID in (select MasterID from MstCommonMaster where MasterName like N''%'+@keyword+'%'')
                    or LoaiTaiSanID in (select MasterID from MstCommonMaster where MasterName like N''%'+@keyword+'%'')
                    )
                union 

您的问题是,您定义了一个变量,该变量包含
1000
个字符,并在notepad++中计算字符串查询。我注意到字符串包含
1770+
个字符,因此SQL Server正在截断您的字符串,因此尝试执行不完整的查询


将变量更改为
@sqlKeyword-nvarchar(2000)
,您应该会没事。

您的变量
@sqlKeyword-nvarchar(1000)
小于查询中的字符量,因此将其增加到,比如说,2000。让我知道,如果它解决了你的问题,我会补充作为一个答案。谢谢。它解决了我的问题