2

ストアドプロシージャで次のことを実現するために、ストアドプロシージャを作成しようとしています。

DECLARE @TBLNAME VARCHAR(128)

SET @TBLNAME = SELECT PAR_VALUE FROM DBO.PARAMETERS WHERE PAR_NAME='SALES_ORDERS_TABLE';

テーブルのPAR_VALUE列には、PARAMETERSテーブルのテーブルの名前が含まれていSales Orderます。

ここで、このテーブル名をストアドプロシージャで使用し、このテーブルの行数をカウントします。

DECLARE @SQL NVARCHAR(4000)
@ SQL = SELECT COUNT(*) FROM '[@TBLNAME]'

ただし、これを実行しようとすると、複数のエラーが発生します。

これを行う方法をガイドして私を助けてくれませんか?

私は今このコードを試しました:

CREATE PROCEDURE JCOUNT_SO
AS
DECLARE @TBLNAME NVARCHAR(512)
SELECT @TBLNAME=(SELECT PAR_VALUE FROM DBO.PARAMETERS WHERE PAR_NAME='SALES_ORDERS_TABLE')

DECLARE @SQL NVARCHAR(4000)
SELECT @SQL='SELECT COUNT(*) AS #_OF_RECORDS INTO SO_COUNT
FROM' '+QUOTENAME(@TBLNAME)''

EXEC SP_EXECUTESQL @SQL;

エラーメッセージ:無効なオブジェクト名:'TEST.DBO.SO_MASTER'

このコードを手伝ってください。

4

2 に答える 2

0

私が言える1つのポイントは...そうあるべきでSET @SQL = SELECT ... あり、もう1つは、結果をに変換してみることができるということですNVARCHAR

使用するSELECT Convert(NVARCHAR(4000),Count(*)) FROM ...

于 2012-11-26T11:12:07.187 に答える