Set @txtVar = 'SELECT * FROM myTable WHERE column_value=''' + @var1 + ''''
Thisの記事は、動的SQLの基本的なアイデアを得るのに役立ちます。
EDIT
ダイナミッククエリではテーブル変数を使用できません。
一時テーブルまたはUse custom TABLE typeを使用する必要があります。
一時テーブル
CREATE TABLE #temp_table_1
(
id INT IDENTITY(0, 1),
col_1 VARCHAR(50)
)
DECLARE @txtVar VARCHAR(MAX)
INSERT INTO #temp_table_1
SELECT col_1
FROM table_1 -- This table_1 is a real table in the database.
SET @txtVar = 'SELECT * FROM #temp_table_1'
EXECUTE (@txtVar)
DROP TABLE #temp_table_1
カスタムテーブルタイプ
CREATE TYPE DefaultTable AS TABLE (ID INT IDENTITY(0, 1), COL_1 VARCHAR(50))
GO
-- Fill a var of that type with some test data
DECLARE @MyTable DefaultTable
INSERT @MyTable
SELECT col_1 FROM table_1 -- This table_1 is a real table in the database.
-- Now this is how you pass that var into dynamic statement
EXECUTE sp_executesql N'SELECT * FROM @MyTable',
N'@MyTable DefaultTable READONLY',
@MyTable
@Yogesh R:サンディの正しいです。注意* 2つの問題:1)文字列連結( "+")を行う方法、および2)SQL文を実行する前に文字列リテラルを引用符で囲んでください。 – paulsm4
私は私の質問を編集して、再度尋ねるべきだと思います。 – Rachcha
@YogeshR - 私は私の答えを編集しました。リンクされた記事が少し助けてくれることを願っています。 – CoderHawk