任何人都可以帮我解决下面的插入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)
);
答案 0 :(得分:0)
CONCAT 。使用+
来代替
另外请记住,您可能必须使用ISNULL
来避免空值,因为CONCAT
忽略空值
答案 1 :(得分:0)
要在SQL-server
中连接字符串,您可以使用CONCAT
函数或+
。你正试图做到这两点。
CONCAT
函数至少需要2个以逗号分隔的参数。
所以,
ID +'-'+ MBID
或者
CONCAT(ID, '-', MBID)
答案 2 :(得分:0)
首先,在SQL Server 2012中引入了CONCAT
使用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);