天天看点

獲取SQL SERVER用戶表信息游標

SET NOCOUNT ON

DECLARE find_user_table CURSOR

FOR

SELECT [name],crdate FROM sysobjects

WHERE type='U'

ORDER BY [name]

DECLARE @cName VARCHAR(128)

DECLARE @crdate DATETIME

DECLARE @Rows INT

CREATE TABLE #tmpTable

(

Tablename VARCHAR(128),

crDate datetime,

Row INT

)

OPEN find_user_table

FETCH NEXT FROM find_user_table INTO @cName,@crdate

WHILE @@FETCH_STATUS=0

BEGIN

  DECLARE @cSql nvarchar(500),@par nvarchar(30)

  SELECT @par='@nRows INT OUTPUT'

  SELECT @cSql='SELECT @nRows=COUNT(*) FROM ['[email protected]+']'

  EXECUTE sp_executesql @cSql,@par,@rows OUTPUT

  INSERT INTO #tmpTable valueS(@cName,@crdate,@rows)

  FETCH NEXT FROM find_user_table INTO @cName,@crdate  

END

SELECT * FROM #tmpTable

DROP TABLE #tmpTable

CLOSE find_user_table

DEALLOCATE find_user_table

继续阅读