在SQl表中移动数据

在SQl表中移动数据,sql,stored-procedures,shift,Sql,Stored Procedures,Shift,我有一个包含列的表 ID, Variant (INT), A1.....A20 (VARCHAR(16)) 谁能推荐最好的方法将列中的数据从X向右移动,其中X是参数,列变量等于Y是第二个参数 因此,如果您能提供有关以X和Y为参数的存储过程的任何帮助,并将数据从Ax开始向右移动,其中Variant等于Y。您可以: 从现有表创建一个新表,并移动列: 创建表格my_new_表格作为 选择20,19。。。 从原始表格 放下原来的那个 将此新名称重命名为原始表名 欢迎来到Stackoverflow!请

我有一个包含列的表

ID,
Variant (INT), 
A1.....A20 (VARCHAR(16))
谁能推荐最好的方法将列中的数据从X向右移动,其中X是参数,列变量等于Y是第二个参数

因此,如果您能提供有关以X和Y为参数的存储过程的任何帮助,并将数据从Ax开始向右移动,其中Variant等于Y。

您可以:

从现有表创建一个新表,并移动列:

创建表格my_new_表格作为 选择20,19。。。 从原始表格

放下原来的那个

将此新名称重命名为原始表名
欢迎来到Stackoverflow!请包含一些样本数据行以及给定特定X和Y的结果,好吗?带编号的列是一种SQL气味-它们通常表示您的数据未正确规范化。@用户-我们确实在尝试提供帮助,因此,如果您可以使用样本编辑您的问题,将有助于我们了解您。例如,您刚刚添加了另一个约束,前提是A20不包含任何数据。如果是这样呢?你可能对标准化是正确的,但是我需要把它放到网格中,这样更容易处理。这只是我自己用的,所以不需要灵活性。我有一个包含简单字符串的网格/矩阵。它们是手动填写的,如果我犯了一个错误,请忘记一个错误,我需要在Excel中为缺少的类似插入列留出一个空格。关于A20,我需要在开始移位和上升错误之前检查此项。嗨,Alex,感谢您的及时回复。但是,我只想将某些列中的数据从Ax右移到A20,前提是A20不包含任何数据,其中Varaint=Y。类似于这样的内容。基本上我需要这个来为数据插入一个空格列:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX亲爱的各位,我回到了代码的同一个位置。我最终将要使用的SQL查询是这样的:亲爱的,我回到了代码的同一个位置。我最终将要使用的SQL查询是这样的:“更新VariantTable集合A5=A4,B5=B4,A4=A3,B4=B3,A3=null,B3=null从VariantTable中选择A4,B4,A3,B3,其中VariantID=2”。我现在遇到的问题是,如果我在Management Studio中运行此代码,它可以正常工作。但是我想从C程序运行它,并将这个字符串作为参数传递给tableAdapter。在这种情况下,完全相同的代码失败,并出现错误:未能启用约束。一个或多个行包含违反非空、唯一或外键约束的值。