我有,當我試圖在SQL Server中執行sp_executesql的2014 有我的存儲過程這個問題:SQL SERVER sp_executesql的不正確的語法附近「)」
alter proc search
@Name nvarchar
as
declare @SQL nvarchar
declare @Params nvarchar
begin
set @SQL = N' Select * from Table_1 , Table_2 where (1=1) '
if @Name is not null
begin
set @SQL = @SQL + ' and Table_2.thatoneID = (Select Table_1.Id from Table_1 where Table_1.Name like ''%''[email protected]+''%'') '
end
set @SQL = @SQL + ' and Table_2.thatoneID = Table_1.Id ; '
set @Params = '@Name nvarchar'
execute sp_executesql @SQL , @Params , @Name
end
當我想:
Execute search 'hh'
我得到這個錯誤
Msg 102, Level 15, State 1, Line 29 Incorrect syntax near ')'.
你應該總是指定變量的長度,所以'爲nvarchar(100)'否則它只會默認爲1個字符 –
另外,使用unicode文本時,請使用unicode文字('N'%'')。雖然在這種情況下,你不打算使用任何索引:D – Luaan
爲什麼動態SQL?爲什麼舊式加入?保持你的SP簡單。 – gofr1