ok this nippet, based on using some FOR XML statements goves a SQL statement you could execute that looks like this:
SELECT * FROM MYSTAGE WHERE 1 = 2
OR ISNUMERIC(COUNTYTBLKEY) = 0
OR ISNUMERIC(INDEXTBLKEY) = 0
OR LEN(STATE) > 2
OR LEN(DESCRIP) > 30
OR LEN(CODE) > 3
OR ISNUMERIC(STATETBLKEY) = 0
OR ISNUMERIC(REGIONTBLKEY) = 0
OR ISNUMERIC(EDREGIONTBLKEY) = 0
OR ISNUMERIC(SPECDISTTBLKEY) = 0
this might get you started:
[font="Courier New"]DECLARE @STAGINGTABLE VARCHAR(125),
@TESTAGAINST VARCHAR(125)
SELECT @STAGINGTABLE ='MYSTAGE' ,
@TESTAGAINST ='TBCOUNTY'
SELECT
DISTINCT REPLACE(REPLACE('SELECT * FROM '
+ @STAGINGTABLE
+ ' WHERE 1 = 2 '
+ STUFF(
(
SELECT
' OR '
+ CASE
WHEN B.DATA_TYPE IN('varchar','nvarchar','char','nchar')
THEN ' LEN('+ B.COLUMN_NAME + ') > '+ CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH) + ' '
WHEN DATA_TYPE IN('datetime')
THEN ' ISDATE(' + B.COLUMN_NAME + ') = 0 '
WHEN DATA_TYPE IN('int','bigint','money','float','decimal','numeric')
THEN ' ISNUMERIC('+ B.COLUMN_NAME + ') = 0 '
END
FROM information_schema.columns B
WHERE A.TABLE_NAME = B.TABLE_NAME
FOR XML PATH(''))
,
1, 2, ' OR ') ,'>','>'
),'OR R ',' OR ') AS SQLSTATEMENT
FROM information_schema.columns A
WHERE TABLE_NAME = @TESTAGAINST
[/font]
Lowell