Stored Procedure

24/05/2007 - 17:52 por Marc W | Informe spam
Ola,

Cuando tengo en un Stored Procedure lo siguente:

IF @ColumnName = ('['+@SearchStr+']')

pero quiero hacer algo mas general como ese en pseudo code:

IF 'SearchStr is present as a Substring somewhere in ColumnName'

hay una manera?

Mi procedure completo, que es de mi parte de otra gente (
http://vyaskn.tripod.com/search_all...tables.htm
)

es:

CREATE PROC SearchAllColumnNames
(
@SearchStr nvarchar(100)
)
AS
BEGIN


CREATE TABLE #Results (ColumnName nvarchar(370))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128),
@SearchStr2 nvarchar(110)
SET @TableName = ''

WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName (
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' +
QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(

QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName (
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA PARSENAME(@TableName, 2)
AND TABLE_NAME PARSENAME(@TableName, 1)
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)


IF @ColumnName = ('['+@SearchStr+']')
BEGIN
INSERT INTO #Results Values( @TableName + '.' + @ColumnName)
END
END
END

SELECT ColumnName FROM #Results
END
GO
 

Leer las respuestas

#1 Alejandro Mesa
24/05/2007 - 18:04 | Informe spam
Marc W,

if @ColumnName like '%'+@SearchStr+'%'
...


AMB


"Marc W" wrote:

Ola,

Cuando tengo en un Stored Procedure lo siguente:

IF @ColumnName = ('['+@SearchStr+']')

pero quiero hacer algo mas general como ese en pseudo code:

IF 'SearchStr is present as a Substring somewhere in ColumnName'

hay una manera?

Mi procedure completo, que es de mi parte de otra gente (
http://vyaskn.tripod.com/search_all...tables.htm
)

es:

CREATE PROC SearchAllColumnNames
(
@SearchStr nvarchar(100)
)
AS
BEGIN


CREATE TABLE #Results (ColumnName nvarchar(370))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128),
@SearchStr2 nvarchar(110)
SET @TableName = ''

WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName > (
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' +
QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(

QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName > (
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA > PARSENAME(@TableName, 2)
AND TABLE_NAME > PARSENAME(@TableName, 1)
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)


IF @ColumnName = ('['+@SearchStr+']')
BEGIN
INSERT INTO #Results Values( @TableName + '.' + @ColumnName)
END
END
END

SELECT ColumnName FROM #Results
END
GO


Preguntas similares