use*_*ser 0 sql sql-server sql-server-2005 insert
我的SQL Server表结构是:
BranchName
BranchManagerName
Address
Zip Info
PhoneNo
FaxNo
Email
Status
CreatedOn
Run Code Online (Sandbox Code Playgroud)
现在,我尝试通过值Zip Info列一样State=XXXX,city=YYYY,Zip=123三个值.
我需要这三个值(State,City,Zip)存储在sql表格中的Zip Info格式state,city-Zip(xxxx,yyyy-123)列中.
如何在SQL Server 2005中编写插入查询?
NO NO NO NOOOOOOO !!!
不要这样做!! 将它们保存为单独的列.永远不要在一列中存储多个字段!
尝试选择所有行时会遇到问题State='NY',您需要经常进行字符串操作并且非索引搜索速度慢.
将它们存储为单独的列,并在显示它们时将它们连接起来.
SELECT
ISNULL(State,'')+ISNULL(', '+city,'')+ISNULL('-'+Zip,'') AS ZipInfo
FROM YourTable
Run Code Online (Sandbox Code Playgroud)
你总是可以在插入中连接字符串:
INSERT INTO YourTable
(col1, col2, col3, Col123)
VALUES
(@col1, @col2, @col3, @col1+', '+@col2+'-'+@col3)
Run Code Online (Sandbox Code Playgroud)
你的"空保护"会根据需要变化,在SELECT中,我假设你可以有NULL值,在INSERT我假设没有NULL值.
如果将它们存储为3列并创建视图或计算列(如果您确实希望它们作为单个字段),则会更好.通过尝试将值存储在一起,您正在着手解决常见的错误设计问题.
在这里寻找有趣的SQL Server分割字符串!
另外,不要在列名中加上空格,除非[你喜欢] [所有] [在]位置.