簡體   English   中英

Sql Server Ce 3.5標識插入

[英]Sql Server Ce 3.5 Identity insert

在Sql Server CE中出現了標識列的問題

使用Server explorer時,在VS2008中,執行以下腳本

SET IDENTITY_INSERT testTable ON; 插入testTable(id,name)值(1,'Something')SET IDENTITY_INSERT testTable ON;

發送以下消息錯誤'不支持Set SQL構造或語句。 但然后插入行好嗎?!?!?!

無論如何,當我嘗試通過C#做同樣的事情時,將該腳本作為命令文本,它無法說錯誤在“插入關鍵字”中

我理解,對於SQL SERVER CE,該命令當時只接受一個批處理命令,所以在這種情況下我們有三個命令(它可以與完整的SQLServer一起工作)任何想法?

如果您使用的是SqlCe 3.5,那么這應該可行。 但是,您需要將其作為兩個單獨的命令發送。 你不能用“;”分隔命令 或者在SqlCe中“GO”。 相反,你需要做這樣的事情:

            SqlCeConnection connection = new SqlCeConnection(connectionString);
            SqlCeCommand identChangeCommand = connection.CreateCommand();
            identChange.CommandText = "SET IDENTITY_INSERT SomeTable ON";
            SqlCeCommand cmd = connection.CreateCommand();
            cmd.CommandText = "INSERT INTO testTable (Id, column1, column2..) VALUES (10,val1,val2...)";
            try
            {
                connection.Open();
                identChange.ExecuteNonQuery();
                cmd.ExecuteNonQuery();
            }

            catch (SqlCeException ex)
            {
                //log ex
            }
            finally
            {
                connection.Close();
            }

嘗試

SET IDENTITY_INSERT testTable ON; 
Insert into testTable (id,name) values (1,'Something');
SET IDENTITY_INSERT testTable OFF;

要么

SET IDENTITY_INSERT testTable ON
go
Insert into testTable (id,name) values (1,'Something')
go
SET IDENTITY_INSERT testTable OFF
go

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM