データベースに非常によく似た2つのテーブルがあり、Visual Studio 2010 Webアプリケーション用のストアドプロシージャを作成して、テーブル番号のあるテーブルからデータを読み込む必要があります。SQL Serverで渡されたパラメータからテーブル名と列名を選択するにはどうすればよいですか?
現在のところ、私たちは2つのテーブルしか選択できませんが、私はこのプロジェクトが成長するにつれて、これ以上の成長を見て取ることができます。
これは私が何をしようとしています何の一種ですが、このコードが正しくありません:
PROCEDURE [dbo].[spGetData]
@tableID int
AS
BEGIN
SET NOCOUNT ON;
declare @col1 nvarchar(50), @table nvarchar(50)
set @col1=case when @tableID=1 then 'SMRequestID' else 'WHRequestID' end
set @table=case when @tableID=1 then 'SMRequest' else 'WHRequest' end
select @col1 as 'Request', WorkOrder, PartNumber, Qty, EmployeeID
from @table
END
基本的には、ColumnName
とTableName
が渡されます@tableID
パラメータに依存
。それをどうやってやりますか?
注:私の検索では関連するものは見当たりませんが、私はC#開発者でデータベース開発者ではありません。私はこれが前に尋ねられたと想像します、それはちょうど私が適切なキーワードを使用していないです。
テーブルやカラム名の場合動的SQLを使用する必要があります。 – Yuck