抱歉說的不清楚 !
比如這張圖
要把delmiters_i 這列 只找到1到100號
前面加77777
想要更新編碼原則?
記住更新動作前記得備份
--測試資料
CREATE TABLE invoice(val varchar(6));
INSERT INTO invoice(val)VALUES('123'),('456');
--更新動作
update invoice set val = 'aaa'+val;
--驗證
select * from invoice;
update invoice set field1 = 'aaa'+field1
where field1 in ('123','456')
新手下update前先select資料及結果是不是正確的,不然下錯可是改一大片資料了
小弟新手 公司要用的。
比如invoice下的資料有123,456
要如何改成 aaa123. aaa456
1.提問者想要修改資料表內的資料
2.提問者想要查詢答案時呈現他要的形式
我認為新手應當沒有更改資料表的權限,故認為是情景 2
但仍提供兩種解法供參考
/*
創建測試環境
測試環境為 Microsoft SQL Server 2016 Standard edition
*/
--測試用資料庫
USE [TestDB]
GO
--創建測試資料表
IF EXISTS (SELECT * FROM sys.tables WHERE object_id = OBJECT_ID(N'[dbo].[Invoice]'))
DROP TABLE [dbo].[Invoice]
GO
CREATE TABLE [dbo].[Invoice]
(
[Id] INT IDENTITY(1,1),
[Code] NVARCHAR(20) NOT NULL
)
GO
--寫入測試資料
INSERT INTO [dbo].[Invoice] VALUES (N'123')
INSERT INTO [dbo].[Invoice] VALUES (N'456')
INSERT INTO [dbo].[Invoice] VALUES (N'789')
/*
1. 修改資料表內的資料
*/
--切換到資料表存在的資料庫
USE [TestDB]
GO
--啟動交易,當資料改錯時可以立刻還原
BEGIN TRANSACTION
--開始更新
UPDATE [dbo].[Invoice]
SET [Code] = N'aaa' + [Code]
--資料驗證
SELECT [Id], [Code] FROM [dbo].[Invoice]
ORDER BY [Id] ASC
--當資料不幸改錯
ROLLBACK TRANSACTION
--當資料改對了,認可這筆修改 預設關閉,當確定沒問題再使用,避免一鍵 F5 的慘案
--COMMIT TRANSACTION
/*
2. 查詢答案時呈現想要的形式
*/
--切換到資料表存在的資料庫
USE [TestDB]
GO
--查詢語法
SELECT [Id],
(N'aaa' + [Code]) AS [Code]
FROM [dbo].[Invoice]
ORDER BY [Id] ASC