marjan_gh
دوشنبه 22 اردیبهشت 1393, 17:18 عصر
من یه پراسیجر نوشتم که بیام باهاش تگ هامو شناسایی کنم مشکل اینه که تا الان داشتم انگلیسی کار می کردم درست بود به محض اینکه رشته ورودی شده فارسی دیگه کار نمی کنه!
ALTER PROCEDURE [dbo].[test] @tag nvarchar(max),@postId int
AS
declare @lentags int,@i int,@char nvarchar( 50),@string nvarchar(max),@x int,@set nvarchar(50)
BEGIN
SET NOCOUNT ON;
set @string=''
set @lentags=len(@tag)
set @i=1
while(@i<=@lentags)
begin
set @char=SUBSTRING(@tag,@i,1)
if(@char!='/')
begin
set @string = @string + @char
set @i=@i+1
continue
end
if exists (select tagId from tblTags where tagName=@string)
begin
set @set=(select tagId from tblTags where tagName=@string)
insert into tblPostTag (tagId,postId)values(@set,@postId)
end
else
begin
insert into tblTags (tagName,tagVisibility)values(@string,'true')
set @set=(select max(tagId) from tblTags)
insert into tblPostTag (tagId,postId)values(@set,@postId)
end
set @string=''
set @i=@i+1
end
END
ALTER PROCEDURE [dbo].[test] @tag nvarchar(max),@postId int
AS
declare @lentags int,@i int,@char nvarchar( 50),@string nvarchar(max),@x int,@set nvarchar(50)
BEGIN
SET NOCOUNT ON;
set @string=''
set @lentags=len(@tag)
set @i=1
while(@i<=@lentags)
begin
set @char=SUBSTRING(@tag,@i,1)
if(@char!='/')
begin
set @string = @string + @char
set @i=@i+1
continue
end
if exists (select tagId from tblTags where tagName=@string)
begin
set @set=(select tagId from tblTags where tagName=@string)
insert into tblPostTag (tagId,postId)values(@set,@postId)
end
else
begin
insert into tblTags (tagName,tagVisibility)values(@string,'true')
set @set=(select max(tagId) from tblTags)
insert into tblPostTag (tagId,postId)values(@set,@postId)
end
set @string=''
set @i=@i+1
end
END