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