SSMS에서 다음을 실행하면 테이블이 존재하지 않으면 테이블이 만들어집니다. 그러나, 내 SQLCommand 코드에서 연결 및 오류없이 쿼리를 보냅니다 있지만 존재하지 않는 경우 테이블을 만들지 않습니다. 어떤 아이디어?SQL 명령은 C# SqlCommand가 아닌 SSMS에서 작동합니다.
string[] tables = new string[6];
tables[0] += ("IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[AD_Authorization]') AND type in (N'U')) " +
"CREATE TABLE [AD_Authorization]([ID] [bigint] IDENTITY(1,1) NOT NULL, " +
" [AD_Account] [varchar](255) NOT NULL, " +
" [AD_SID] [varchar](255) NOT NULL, " +
" [AD_EmailAddress] [varchar](255) NULL, " +
" [DateImported] [datetime] NOT NULL, " +
" [Active] [bit] NULL) ON [PRIMARY]");
for (int i = 0; i <= 5; i++)
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
using (SqlCommand cmd = new SqlCommand(tables[i], connection))
{
connection.Open();
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
connection.Close();
}
}
}
SSMS에서 로그인 한 사용자와 다른 코드를 사용하여이 사용자를 실행할 수 있습니까? 다를 경우 프로젝트 내에서 사용하는 동일한 사용자로 연결을 시도한 후 ... –
또한 : 나는 항상 sys.objects가 아닌보다 정확하고 집중된'sys.tables'를 사용할 것입니다. - 당신이 관심있는 어떤 유형의 객체를 지정하는지) - '존재하지 않는다면 (SELECT * FRAME 이름 ='AD_Authorization ') .... - 그러나 이것이 어떤 차이를 만들지는 모르겠다. –
전체 편집 됨 암호. –