テーブル名になるパラメータを使用するストアドプロシージャを書きたいと思います。動的SQL(パラメータとしてテーブル名を渡す)
例えば:
@tablename << Parameter
SELECT * FROM @tablename
どのようにこれは可能ですか?
私はこれを書いた:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[GetAllInterviewQuestions]
@Alias varchar = null
AS
BEGIN
Exec('Select * FROM Table as ' @Alias)
END
をしかし、それは@alias近くに不正な構文を言います。
予約語であるテーブル名やテーブル名にスペースを入れることを避けるために、テーブル名を角括弧で囲む方が少し良いです。 exec( 'select * from [' + @ tablename + '] where ...') –