0
데이터베이스 관련 정보를 얻으려면이 코드를 사용하고 있습니다.멀티 파트 식별자를 바인딩 할 수 없습니다.
스크립트는 ---
DECLARE @USER_Name SYSNAME
DECLARE @Database_Name VARCHAR(255)
DECLARE @SQLQRY VARCHAR(2000)
DECLARE Database_Cursor CURSOR
FOR
SELECT '[' + NAME + ']' AS NAME
FROM master.dbo.sysdatabases
WHERE NAME IN ('Aaskiran')
ORDER BY NAME
OPEN Database_Cursor
FETCH NEXT
FROM Database_Cursor
INTO @Database_Name
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT 'Database:' + @Database_Name
EXECUTE (
'SELECT Type, COUNT(*) As Objects FROM
' + @Database_Name + '.dbo.sysobjects
GROUP BY Type ORDER BY Type'
)
EXECUTE (
'SELECT name As Table_Name FROM
' + @Database_Name + '.dbo.sysobjects
WHERE type=''U'' ORDER BY name'
)
EXECUTE (
'SELECT name As Stored_Proc_Name FROM
' + @Database_Name + '.dbo.sysobjects
WHERE type=''P'' ORDER BY name'
)
DECLARE @Table_Name VARCHAR(255)
EXECUTE (
'DECLARE Table_Cursor CURSOR FOR SELECT name, USER_NAME(uid) FROM
' + @Database_Name + '.dbo.sysobjects
WHERE type=''U'' ORDER BY name'
)
OPEN Table_Cursor
FETCH NEXT
FROM Table_Cursor
INTO @Table_Name,
@User_Name
SET @SQLQRY = 'SELECT
SUM (row_count)
FROM sys.dm_db_partition_stats
WHERE
object_id=OBJECT_ID(' + @Database_Name + '.[' + @User_Name + '].[' + @Table_Name + '])
AND (index_id=0 or index_id=1)'
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE (@SQLQRY)
--EXECUTE('SELECT COUNT(*) AS ['[email protected]_Name+'_Rows_Count] FROM '[email protected]_Name+'. ['[email protected]_Name+'].['[email protected]_Name+']')
--print('SELECT COUNT(*) AS ['[email protected]_Name+'_Rows_Count] FROM '[email protected]_Name+'.['[email protected]_Name+'].['[email protected]_Name+']')
FETCH NEXT
FROM Table_Cursor
INTO @Table_Name,
@User_Name
END
CLOSE Table_Cursor
DEALLOCATE Table_Cursor
FETCH NEXT
FROM Database_Cursor
INTO @Database_Name
END
CLOSE Database_Cursor
DEALLOCATE Database_Cursor
하지만 난 오류를 얻고 그
메시지 4104, 수준 16, 상태 1, 줄 1 다중 부분 식별자 "AasKiran. ## MS_PolicyEventProcessingLogin ##. AADetails "를 바인딩 할 수 없습니다.
나는이 오류에 대해 봤지만 대부분의 링크는 조인 상태입니다. 나는 별칭을 사용하지 않았거나 어떤 종류의 조인도하지 않았기 때문에 내 쿼리에서이 문제를 얻지 못한다.
감사합니다. steve; 나중에 내가 버그를 잡았어. 글쎄, 내가 뭘하려고했는지 전후에 데이터베이스의 다른 엔티티 (특정 tsql 스크립트를 실행)가 수행되었습니다 카운트를 만드는 것입니다. 이제 쿼리가 작동합니다. 감사합니다. – Ravi