1

ここに来るのは初めてで、質問したいです。

これが私のストアドプロシージャです...

ALTER procedure [dbo].[GetDataFromTable]
@tablename sysname,
@DocumentName nvarchar(50),
@Uploader nvarchar(50)

as
begin

if @tablename = 'Document_Data'
EXEC('Select * from Document_Data where DocumentName = ('+ @DocumentName +') and Uploader = ('+ @Uploader +')')

end

問題は...ストアド プロシージャが DocumentName および Uploader パラメータを値自体ではなく列名として読み取ることです。インターネットから探し出したエイリアスやその他のものを使用しようとしましたが、うまくいきません。

この背後にある問題は何でしょうか? ああ、ところで私は動的 SQL の初心者です。ありがとう。

4

1 に答える 1

1

''以下のように、パラメータの前後に動的SQLに文字を追加する必要があります。

ALTER procedure [dbo].[GetDataFromTable]
@tablename sysname,
@DocumentName nvarchar(50),
@Uploader nvarchar(50)

as
begin

if @tablename = 'Document_Data'
EXEC('Select * from Document_Data where DocumentName = ('''+ @DocumentName +''') and Uploader = ('''+ @Uploader +''')')

end
于 2013-07-16T07:43:22.567 に答える