[英]Select in prepared statement returns date only
I'm trying to run code from this webpage Part with tables, i have edited it so i'm taking date using GETADATE()
unfortunately it ends with errors Column name or number of supplied values does not match table definition.
我正在尝试从此带有表的网页部件中运行代码,我对其进行了编辑,因此我正在使用
GETADATE()
获取日期,不幸的是,它以错误结尾。 Column name or number of supplied values does not match table definition.
I commented out Insert
statement and select returns only casted @DateAdded
(No column name) Oct 25 2017 10:56AM
Same code in parameterized version works ok, is there something wrong with the dynamic version? 我注释掉了
Insert
语句并选择仅返回@DateAdded
(No column name) Oct 25 2017 10:56AM
参数化版本中的相同代码可以正常工作,动态版本有问题吗?
DECLARE @SQL NVarChar(max)
DECLARE @DateAdded SmallDateTime
SELECT @DateAdded = GETDATE()
SET @SQL = ' Use [?];
DECLARE @DatabaseSize Float
IF OBJECT_ID(''tempdb..#TableSizes'') IS NOT NULL BEGIN
DROP TABLE #TableSizes
END
SELECT DatabaseName = DB_NAME()
, TableName = a2.name
, SchemaName = a3.name
, RowCounts = a1.rows
, TableSizeMB = (a1.reserved + ISNULL(a4.reserved,0)) / 128
, DataSizeMB = a1.data / 128
, IndexSizeMB = (CASE WHEN (a1.used + ISNULL(a4.used,0)) > a1.data
THEN (a1.used + ISNULL(a4.used,0)) - a1.data
ELSE 0
END) /128
INTO #TableSizes
FROM (SELECT ps.object_id
, [rows] = SUM(CASE
WHEN (ps.index_id < 2) THEN row_count
ELSE 0
END)
, reserved = SUM(ps.reserved_page_count)
, data = SUM(CASE
WHEN (ps.index_id < 2)
THEN (ps.in_row_data_page_count + ps.lob_used_page_count + ps.row_overflow_used_page_count)
ELSE (ps.lob_used_page_count + ps.row_overflow_used_page_count)
END)
, used = SUM (ps.used_page_count)
FROM sys.dm_db_partition_stats ps
GROUP BY ps.object_id) AS a1
INNER JOIN sys.all_objects a2 ON a1.object_id = a2.object_id
INNER JOIN sys.schemas a3 ON a2.schema_id = a3.schema_id
LEFT JOIN (SELECT it.parent_id
, reserved = SUM(ps.reserved_page_count)
, used = SUM(ps.used_page_count)
FROM sys.dm_db_partition_stats ps
INNER JOIN sys.internal_tables it ON it.object_id = ps.object_id
WHERE it.internal_type IN (202,204)
GROUP BY it.parent_id) AS a4 ON a4.parent_id = a1.object_id
WHERE a2.type <> ''S'' and a2.type <> ''IT''
SELECT @DatabaseSize = Sum(TableSizeMB) FROM #TableSizes
--INSERT INTO test..[Tables]
SELECT ''' + Cast(@DateAdded as nvarchar(50)) + '''
, DatabaseName
, SchemaName
, TableName
, RowCounts
, TableSizeMB
, DataSizeMB
, IndexSizeMB
, (TableSizeMB/@DatabaseSize) * 100
FROM #TableSizes
WHERE TableSizeMB > .005 * @DatabaseSize
AND TableSizeMB > 100
DROP TABLE #TableSizes'
exec sp_MSforeachdb @SQL
Substring you query (2000 char max) 您查询的子字符串(最多2000个字符)
create proc sys.sp_MSforeachdb
@command1 nvarchar(2000), @replacechar nchar(1) = N'?', @command2 nvarchar(2000) = null, @command3 nvarchar(2000) = null,
@precommand nvarchar(2000) = null, @postcommand nvarchar(2000) = null
Try split on @command1 , @command2 尝试在@ command1,@ command2上分割
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.