合并两列并使用 SQL 服务器将结果输入不同的列
Combine two columns and input the result in a different columns using SQL server
任何人都可以帮助我插入下面的 sql 语句。我正在尝试通过组合列 ID(由数据库自动生成)和 MBID 列来创建一个 SampleID。我遇到错误 'CONCAT' 不是可识别的内置函数名称。
谢谢
SqlCommand sc = new SqlCommand(@"insert into Sample (MBID, SampleType,SampleDate,ConsultantName,Comments,FirstSample, SampleID)
values(@MBID , @SampleType , @SampleDate , @ConsultantName , @Comments, CONCAT(ID +'-'+ MBID) ;", con);
Table Design
CREATE TABLE [dbo].[Sample] (
[ID] INT IDENTITY (5, 1) NOT NULL,
[SampleID] NVARCHAR (50) NOT NULL,
[SampleType] NVARCHAR (50) NULL,
[SampleDate] DATE NULL,
[ConsultantName] NVARCHAR (50) NULL,
[Comments] NVARCHAR (MAX) NULL,
[FirstSample] NVARCHAR (MAX) NULL,
[MBID] INT NULL,
CONSTRAINT [PK_Sample] PRIMARY KEY CLUSTERED ([SampleID] ASC)
);
CONCAT 可从 SQL Server 2012 获得。使用 +
代替
另外请记住,您可能必须使用 ISNULL
来避免空值,因为 CONCAT
会忽略空值
要连接 SQL-server
中的字符串,您可以使用 CONCAT
函数或 +
。你正试图同时做这两件事。
CONCAT
函数至少需要 2 个 comma-separated 个参数。
所以,要么
ID +'-'+ MBID
或
CONCAT(ID, '-', MBID)
首先,CONCAT 是在 SQL Server 2012
中引入的
使用 CONCAT 函数:
SELECT CONCAT ( 'Welcome ', 'World ', '!' ) AS Result;
其次,您希望将自动生成的值连接到样本 ID 列的 ID 值。以下查询可用于此...
SELECT IDENT_CURRENT('table_name')+1;
现在,如下更改您的查询
SqlCommand sc = new SqlCommand(@"insert into Sample (MBID, SampleType,SampleDate,ConsultantName,Comments,FirstSample, SampleID)
values(@MBID , @SampleType , @SampleDate , @ConsultantName , @Comments, cast((IDENT_CURRENT('Sample')+1) as VARCHAR(max)) +'-'+ CAST(@MBID AS VARCHAR(10)));", con);
任何人都可以帮助我插入下面的 sql 语句。我正在尝试通过组合列 ID(由数据库自动生成)和 MBID 列来创建一个 SampleID。我遇到错误 'CONCAT' 不是可识别的内置函数名称。 谢谢
SqlCommand sc = new SqlCommand(@"insert into Sample (MBID, SampleType,SampleDate,ConsultantName,Comments,FirstSample, SampleID)
values(@MBID , @SampleType , @SampleDate , @ConsultantName , @Comments, CONCAT(ID +'-'+ MBID) ;", con);
Table Design
CREATE TABLE [dbo].[Sample] (
[ID] INT IDENTITY (5, 1) NOT NULL,
[SampleID] NVARCHAR (50) NOT NULL,
[SampleType] NVARCHAR (50) NULL,
[SampleDate] DATE NULL,
[ConsultantName] NVARCHAR (50) NULL,
[Comments] NVARCHAR (MAX) NULL,
[FirstSample] NVARCHAR (MAX) NULL,
[MBID] INT NULL,
CONSTRAINT [PK_Sample] PRIMARY KEY CLUSTERED ([SampleID] ASC)
);
CONCAT 可从 SQL Server 2012 获得。使用 +
代替
另外请记住,您可能必须使用 ISNULL
来避免空值,因为 CONCAT
会忽略空值
要连接 SQL-server
中的字符串,您可以使用 CONCAT
函数或 +
。你正试图同时做这两件事。
CONCAT
函数至少需要 2 个 comma-separated 个参数。
所以,要么
ID +'-'+ MBID
或
CONCAT(ID, '-', MBID)
首先,CONCAT 是在 SQL Server 2012
中引入的使用 CONCAT 函数:
SELECT CONCAT ( 'Welcome ', 'World ', '!' ) AS Result;
其次,您希望将自动生成的值连接到样本 ID 列的 ID 值。以下查询可用于此...
SELECT IDENT_CURRENT('table_name')+1;
现在,如下更改您的查询
SqlCommand sc = new SqlCommand(@"insert into Sample (MBID, SampleType,SampleDate,ConsultantName,Comments,FirstSample, SampleID)
values(@MBID , @SampleType , @SampleDate , @ConsultantName , @Comments, cast((IDENT_CURRENT('Sample')+1) as VARCHAR(max)) +'-'+ CAST(@MBID AS VARCHAR(10)));", con);