我編寫了這個表,用於從表中的任何列中的sql中搜索字符串,但在某些情況下,它響應異常。這裏給出了這個例子。從表中的任意一列在sql中搜索字符串
declare @tablepay table
(
payno varchar(500),
lastmodified nvarchar(500)
)
declare @columnname table
(
[rownumber] INT IDENTITY,
colname varchar(500)
)
insert into @tablepay (payno, lastmodified)
select 'PAY/2014','abcd'
insert into @columnname(colname)
select TN.N.value('local-name(.)', 'sysname') as ColumnName
from
(select TV.*
from (select 1) as D(N)
outer apply (select top(0) * from @tablepay) as TV for xml path(''), elements xsinil, type) as TX(X)
cross apply TX.X.nodes('*') as TN(N)
DECLARE @count INT
DECLARE @begincount INT
DECLARE @clname as VARCHAR(50)='';
SET @begincount = 1
select @count = count(*) from @columnname
declare @tlname varchar(50)
set @tlname = '@tablepay'
WHILE @begincount <= @count
BEGIN
set @clname = (select colname from @columnname where rownumber = @begincount)
declare @text as varchar(100)
select * from @tablepay where @clname like '%f%'
SET @begincount = @begincount + 1
END
請擴展'異常響應',請添加適當的RDBMS標記 - 它是SQL Server嗎? –
是的,這是SQL Server,在這裏,當我給'%f%'時,它返回一行。但在那一行沒有'f' –
你發佈的代碼沒有意義。你在'@ tablepay'中插入一行,然後從中選擇_using與table_中的記錄無關的where子句。總之你的代碼絕對沒有意義。 –