-1

几分钟前,我只是在搜索一个简单的语法(SQL 服务器)查询,它将复制一个表 Row 。

这通常不时进行,在处理 ASP.net 项目时,使用SQL SERVER 管理工作室中的查询测试数据。所以其中一个常规操作是复制一行,将所需的列更改为彼此不同,然后使用查询测试数据

所以我遇到了 - 这个存储过程 -作为 Dan Atkinson 的回答

但是将它添加到存储所有非测试目的的位置让我认为是否可以按排序顺序存储它们以便我可以区分

项目中使用的“utils”或“testingPurpose”

(管理树视图中的默认文件夹是 Programmabilty)这也可能是另一个文件夹,或者这不是一个选项?

如果没有,我想到了 Utils. 这样的前缀(如果没有其他方法存在)

dbo.Utils.CopyTableRow
dbo.Utils.OtherRoutineActions ....

或者有一种指定的方式来实现我的想法。

4

1 回答 1

0

这是我制作的第一个“Util”存储过程,发现它是唯一通过 Util_ 为其添加前缀的解决方案

ALTER PROCEDURE [dbo].[Utils_TableRowCopy](
@TableName VARCHAR(50) ,
@RowNumberToCopy INT
)



AS
BEGIN

declare @RowIdentity sysname =
(SELECT name FROM sys.identity_columns WHERE object_id = object_id(@TableName)
 )

DECLARE @columns VARCHAR(5000), @query VARCHAR(8000);
SET @query = '' ;

SELECT @columns =
    CASE
        WHEN @columns IS NULL THEN column_name
        ELSE @columns + ',' + column_name
    END
FROM INFORMATION_SCHEMA.COLUMNS
WHERE (
    TABLE_NAME = LTRIM(RTRIM(@TableName))
    AND
    column_name <> LTRIM(RTRIM(@RowIdentity))
);

SET @query = 'INSERT INTO ' + @TableName + ' (' + @columns + ') SELECT ' + @columns + ' FROM ' + @TableName + ' WHERE ' + @RowIdentity + ' = ' + CAST(@RowNumberToCopy AS VARCHAR);

--SELECT SCOPE_IDENTITY();
declare  @query2 VARCHAR(100) =  ' Select Top 1 * FROM '+ @TableName +' Order BY ' + @RowIdentity + ' desc' ;
EXEC (@query);
EXEC (@query2);

结尾

于 2012-10-03T20:41:09.187 回答