хранимая процедура sql в visual studio 2008 - PullRequest
0 голосов
/ 08 июня 2010

Я хочу написать хранимую процедуру в Visual Studio, которая в качестве параметра получает имя проекта и запускается в базе данных TT и копирует данные из TT.dbo.LCTemp (где LC - это имя проекта, полученного в качестве параметра) таблица к таблице "TT.dbo.Points". обе таблицы имеют 3 столбца: PT_ID, имя проекта и дата создания

Я думаю, что написал неправильно, вот оно:

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 Ответ

1 голос
/ 08 июня 2010

Попробуйте использовать

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

Или используйте такие параметры как

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'
...