我不完全確定爲什麼這不起作用。我確定它非常基本的SQL,並且我在某處丟失了某些東西。子查詢語法錯誤
SELECT COUNT(*)
FROM (SELECT MIN(sys.tables.name)
FROM sys.tables)
我收到此錯誤消息::
Msg 102, Level 15, State 1, Line 4 Incorrect syntax near ')'.
正確的輸出應該只是一個號碼,排在第一個表在當前數據庫的數量。
我不完全確定爲什麼這不起作用。我確定它非常基本的SQL,並且我在某處丟失了某些東西。子查詢語法錯誤
SELECT COUNT(*)
FROM (SELECT MIN(sys.tables.name)
FROM sys.tables)
我收到此錯誤消息::
Msg 102, Level 15, State 1, Line 4 Incorrect syntax near ')'.
正確的輸出應該只是一個號碼,排在第一個表在當前數據庫的數量。
爲了讓您的查詢工作,剛剛過去的)
和別名名稱後添加別名列:
SELECT COUNT(*)
FROM (SELECT MIN(sys.tables.name) as name FROM sys.tables) as A
但是這一次將不會返回你number of rows in the first table in the current database
。它只會返回1,因爲這個子查詢中有一條記錄。要獲取的行數在第一個表在當前數據庫中,你必須使用動態SQL,是這樣的:
declare @Table_Name nvarchar(128), @stmt nvarchar(max)
select @Table_Name = min(name) from sys.tables
select @stmt = 'select ''' + @Table_Name + ''' as Table_Name, count(*) from ' + @Table_Name
exec sp_executesql @stmt = @stmt
要在第一時間拿到表中的行數當前數據庫,你可以編寫一個查詢作爲:
SELECT SUM(pa.rows) RowCnt
FROM sys.tables ta
INNER JOIN sys.partitions pa
ON pa.OBJECT_ID = ta.OBJECT_ID
WHERE ta.name =(SELECT MIN(T.name) FROM sys.tables T)
GROUP BY ta.name
如何確定當前數據庫中的第一個表。一個具有最小的對象ID或基於字母字符? – Deepshikha