我想把我的表的行數分配給一個變數。
我想把表的行數分配給一個變數。
DECLARE @ROW_COUNT nvarchar(1000) 。
SET @sql_row_count = 'SELECT COUNT(*) FROM ' @TABLE_NAME;
EXEC sp_executesql @sql_row_count, @ROW_COUNT OUTPUT;
SET @ROW_COUNT = cast(@ROW_COUNT as int) 。
SELECT @ROW_COUNT;
@ROW_COUNT回傳空。
謝謝你的幫助。
uj5u.com熱心網友回復:
對你現有查詢的評論
@ROW_COUNT應該是整數。如果你把它定義為整數,你就不需要使用CAST()。
@ROW_COUNT分配給COUNT(*)。QUOTENAME()以避免sql注入。sp_executesql定義引數。修改后的查詢如下
DECLARE @ROW_COUNT INT;
DECLARE @sql_row_count NVARCHAR(MAX)
SET @sql_row_count = 'SELECT @ROW_COUNT = COUNT(*) FROM ' QUOTENAME(@TABLE_NAME) 。
--列印出來供驗證。
PRINT @sql_row_count
EXEC sp_executesql @sql_row_count, N'@ROW_COUNT INT OUTPUT', @ROW_COUNT OUTPUT;
-- SET @ROW_COUNT = cast(@ROW_COUNT as int);
SELECT @ROW_COUNT;
uj5u.com熱心網友回復:
你需要通過添加一個變數來改變動態查詢。 被賦值為Count(*),并通過添加這個變數的描述來改變對sp_executesql的呼叫。
Declare @ROW_COUNT Int;
宣告 @TABLE_NAME sysname = 'TableName'/span>。
宣告 @sql_row_count nVarChar(max)。
SET @sql_row_count = 'SELECT @ROW_COUNT=COUNT(*) FROM '/span>
@TABLE_NAME;
EXEC sp_executesql @sql_row_count, N'@ROW_COUNT Int OUTPUT'/span>,
@ROW_COUNT=@ROW_COUNT OUTPUT
SELECT @ROW_COUNT;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332779.html
標籤:
