2010-06-08 2 views
0

Visual Studio에서 저장 프로 시저를 매개 변수로 사용하여 프로젝트 이름을 받아 데이터베이스 TT에서 실행하고 TT.dbo.LCTemp (여기서 LC는 프로젝트는 매개 변수로 수신) 테이블을 "TT.dbo.Points"테이블에 추가합니다. 여기있다, 내가 잘못 쓴 생각 PT_ID, 프로젝트 이름 및 DateCreatedVisual Studio 2008에서 SQL 저장 프로 시저

: 두 테이블은 3 열이 내가 뭘 잘못했는지

ALTER PROCEDURE dbo.FromTmpToRegular 
    @project varchar(10) 
AS 
BEGIN 
    declare @ptID varchar(20) 
    declare @table varchar(20) 

    set @table = 'TT.dbo.' + @project + 'Temp' 
    set @ptID = @table + '.PT_ID' 

    Insert into TT.dbo.Points Select * from [@table] where [@ptID] Not in(Select PT_ID from TT.dbo.Points) 
END 

어떤 생각?

답변

1

첫 번째 대답은 나를 위해 일한이

Declare @SQL nVarChar(1000) --N.B. string must be unicode for sp_executesql 
SELECT @SQL = 'SELECT * FROM pubs.DBO.Authors WHERE au_lname = @AuthorName' 

Exec sp_executesql @SQL, N'@AuthorName nVarChar(50)', @AuthorName = 'white' 
+0

처럼

EXEC ('Insert into TT.dbo.Points Select * from ' + @table + ' where ' + @ptID ' Not in(Select PT_ID from TT.dbo.Points)'); 

또는 사용 매개 변수를 사용하십시오, 대단히 감사합니다! :) – Greg