SqlServer数据库数据表修改后无法保存

数据表建立过程中,对已经保存了的数据表进行修改时,无法对其修改内容保存,弹出如下对话框:

 

 

 这是为什么呢?小编有妙招,具体操作如下:

(1)“工具”菜单中选择“选项”:

 

 

 

 (2)”选项“对话框中选择”Designers",然后选择“Designers"下的”表设计器和数据库设计器

(3)把“ 阻止保存要求重新创建表的更改”复选框前面的“✔”去掉,确定即可。

 

 这样修改后数据表的属性内容就可以保存啦。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要获取SQL Server数据库中所有的数据并保存在本地,可以使用以下步骤: 1. 安装 SQL Server Native Client 或者 ODBC 驱动程序,以便连接 SQL Server 数据库。 2. 使用 SQL Server Management Studio 或者其他工具创建一个连接,并测试连接是否正常。 3. 使用 C++ 编写代码连接到 SQL Server 数据库,并执行查询。 4. 查询所有的名称,并将结果保存在一个字符串数组中。 5. 迭代该数组中的每个,并为每个生成一个 SELECT 语句。 6. 使用 SQL Server 数据库驱动程序执行每个 SELECT 语句,并将结果保存在一个文件中。 以下是一个示例代码: ```c++ #include <windows.h> #include <sqltypes.h> #include <sql.h> #include <sqlext.h> #include <iostream> #include <fstream> #include <string> using namespace std; // 定义 SQL Server 数据库连接参数 #define SQLSERVER_DRIVER "{SQL Server Native Client 11.0}" #define SQLSERVER_SERVER "localhost" #define SQLSERVER_DATABASE "test" #define SQLSERVER_USER "username" #define SQLSERVER_PASSWORD "password" // 定义 SQL 查询语句 #define SELECT_TABLES "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'" int main() { // 声明 SQL Server 数据库连接句柄和语句句柄 SQLHENV hEnv = NULL; SQLHDBC hDbc = NULL; SQLHSTMT hStmt = NULL; // 初始化 SQL Server 数据库连接句柄 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0); SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDbc); // 连接 SQL Server 数据库 SQLCHAR* szConnStr = (SQLCHAR*)"DRIVER=" SQLSERVER_DRIVER ";SERVER=" SQLSERVER_SERVER ";DATABASE=" SQLSERVER_DATABASE ";UID=" SQLSERVER_USER ";PWD=" SQLSERVER_PASSWORD; SQLRETURN ret = SQLDriverConnect(hDbc, NULL, szConnStr, SQL_NTS, NULL, 0, NULL, SQL_DRIVER_NOPROMPT); if (SQL_SUCCESS != ret && SQL_SUCCESS_WITH_INFO != ret) { cerr << "Failed to connect to SQL Server database." << endl; return -1; } // 执行查询语句,获取所有的名称 SQLAllocHandle(SQL_HANDLE_STMT, hDbc, &hStmt); ret = SQLExecDirect(hStmt, (SQLCHAR*)SELECT_TABLES, SQL_NTS); if (SQL_SUCCESS != ret && SQL_SUCCESS_WITH_INFO != ret) { cerr << "Failed to execute SQL query." << endl; return -1; } // 保存的名称 SQLCHAR szTableName[256]; SQLLEN cbTableName; string arrTables[256]; int i = 0; while (SQLFetch(hStmt) == SQL_SUCCESS) { SQLGetData(hStmt, 1, SQL_C_CHAR, szTableName, sizeof(szTableName), &cbTableName); arrTables[i++] = (char*)szTableName; } // 迭代每个,生成 SELECT 语句,并执行查询 SQLCHAR szSelect[1024]; SQLLEN cbSelect; ofstream outfile; for (int j = 0; j < i; j++) { sprintf((char*)szSelect, "SELECT * FROM %s", arrTables[j].c_str()); ret = SQLExecDirect(hStmt, szSelect, SQL_NTS); if (SQL_SUCCESS != ret && SQL_SUCCESS_WITH_INFO != ret) { cerr << "Failed to execute SQL query." << endl; return -1; } // 将查询结果保存在文件中 outfile.open(arrTables[j].c_str()); SQLCHAR szData[4096]; SQLLEN cbData; while (SQLFetch(hStmt) == SQL_SUCCESS) { for (int k = 1; k <= i; k++) { SQLGetData(hStmt, k, SQL_C_CHAR, szData, sizeof(szData), &cbData); outfile << (char*)szData << ","; } outfile << endl; } outfile.close(); } // 释放句柄 SQLFreeHandle(SQL_HANDLE_STMT, hStmt); SQLDisconnect(hDbc); SQLFreeHandle(SQL_HANDLE_DBC, hDbc); SQLFreeHandle(SQL_HANDLE_ENV, hEnv); return 0; } ``` 这段代码连接到 SQL Server 数据库,执行 SELECT_TABLES 查询获取所有的名称,然后迭代的名称,并为每个生成 SELECT 语句,并将结果保存在一个文件中。你可以根据自己的需要修改代码来实现你的具体需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值