SQL Server程序的执行结果作为脚本

时间:2013-10-16 04:45:45

标签: sql-server procedure

我需要编写扫描表My_table中数据的过程Textprocedure (Table_txt varchar(200)) 例如:我有桌子

My_table (Id  int,  Name varchar(200))

我需要像输出文本(脚本)这样的程序执行结果

DELETE FROM My_table 
INSERT INTO My_table (Id, Name) values (1, 'Tropico') 
INSERT INTO My_table (Id, Name) values (2, 'Bus') 
INSERT INTO My_table (Id, Name) values (4, 'Africa') 
INSERT INTO My_table (Id, Name) values (8, 'Arrival') 

我可以用手术吗?我做了

CREATE TABLE My_table (Id  int,  Name varchar(200))

DELETE FROM My_table 
INSERT INTO My_table (Id, Name) values (1, 'Tropico') 
INSERT INTO My_table (Id, Name) values (2, 'Bus') 
INSERT INTO My_table (Id, Name) values (4, 'Africa') 
INSERT INTO My_table (Id, Name) values (8, 'Arrival')

ALTER PROCEDURE Textprocedure (@Table_txt varchar(200))
AS
BEGIN
DECLARE @Id1 NVARCHAR(40)
DECLARE @Result NVARCHAR(4000)
SET @Result = ''
SELECT @Result = 'INSERT INTO '+ CAST(@Table_txt AS NVARCHAR(250)) + --@Result 
+'() values ' + CAST([name] AS NVARCHAR(250)) + ' ' FROM My_table --where Id<5
PRINT (@Result)
END
GO

EXEC Textprocedure My_table

我的输出:INSERT INTO My_table() values Arrival 但我需要多行结果。我可以循环吗?我需要像id,name这样的打印表参数吗?但是我怎么能选择它们呢?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以使用带参数的动态sql然后打印或返回结果。