Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Có cách nào để thực hiện một truy vấn khác trong truy vấn chèn không?

Thiết lập:

USE TempDB;
GO

CREATE TABLE dbo.Leads
(
    LeadID VARCHAR(64),
    CreateUser VARCHAR(32),
    CreateDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
    FirstName VARCHAR(32),
    AccountID INT
);

CREATE TABLE dbo.Accounts
(
    AccountID INT IDENTITY(1,1),
    name VARCHAR(32) /* , ... other columns ... */
);

CREATE TABLE dbo.Temp(name VARCHAR(32));

INSERT dbo.Temp SELECT 'foo'
UNION SELECT 'bar';

Truy vấn:

INSERT dbo.Accounts
(
    name
)
OUTPUT
    'Q' + cast(floor(999997 * RAND(convert(varbinary, newid()))) as varchar(20)),
    'U6UJ9000S',
    CURRENT_TIMESTAMP,
    inserted.name,
    inserted.AccountID
INTO dbo.Leads
SELECT name
FROM dbo.Temp;

Kiểm tra:

SELECT * FROM dbo.Accounts;
SELECT * FROM dbo.Leads;

Dọn dẹp:

USE tempdb;
GO
DROP TABLE dbo.Temp, dbo.Accounts, dbo.Leads;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách thực thi thủ tục được lưu trữ trên máy chủ sql một cách không đồng bộ và đảm bảo hoàn thành

  2. Giá trị ngẫu nhiên cho cột DATETIME

  3. Hiệu suất SQL-Server:Nhanh hơn, một thủ tục được lưu trữ hay một dạng xem?

  4. Làm cách nào để biết một bảng cơ sở dữ liệu có đang được truy cập nữa hay không? Muốn một cái gì đó giống như một trình kích hoạt CHỌN

  5. Ánh xạ ký tự / tìm kiếm và thay thế ký tự bằng ký tự trong SQL Server 2008 R2