I need to copy a record from a Database DBa, Table Tbl1 to Database DBx, Table Tbl1 and get the Scope Identity inside the same SQL Server 2005 server
I have already checked this: How to Dynamically change the database using TSQL
but my issue is more complicated.
I do want just to execute something in the DBx being inside DBa.
I want to copy a record from one database to one of the other (same) databases in the same server and get the scope_identity back.
The Dynamic SQL is a string. What do we do when we want to copy variables of other datatypes as well?
Example code:
CREATE PROCEDURE dbo.pr_consolidation_copy_group @group_id numeric(10,0),@database_to varchar(100)
AS
DECLARE @group_name char(100),@arrival datetime,@departure datetime,@contact_id char(82)
SELECT @group_name = group_name ,
@arrival = arrival,
@departure = departure,
@contact_id = contact_id
FROM grp
WHERE group_id = @group_id
DECLARE @exec nvarchar(max) = QUOTENAME(@database_to) + N'.sys.sp_executesql',
@sql nvarchar(max) = N'INSERT grp(group_name, arrival, departure, contact_id)
SELECT @group_name, @arrival, @departure, @contact_id;SELECT SCOPE_IDENTITY()'; //How do we handle the variables?
EXEC @exec @sql;
go
Get all variables to string and put CONVERT inside the Dynamic SQL? I hope I can find another solution because my table is around 300 columns :(